1; RUN: llc -march=hexagon < %s | FileCheck %s 2 3; CHECK-DAG: r[[REG:[0-9]+]] = memw(r{{[0-9]+<<#[0-9]+}}+##.LJTI{{.*}}) 4; CHECK-DAG: jumpr r[[REG]] 5 6define void @main() #0 { 7entry: 8 %ret = alloca i32, align 4 9 br label %while.body 10 11while.body: 12 %ret.0.load17 = load volatile i32, i32* %ret, align 4 13 switch i32 %ret.0.load17, label %label6 [ 14 i32 0, label %label0 15 i32 1, label %label1 16 i32 2, label %label2 17 i32 3, label %label3 18 i32 4, label %label4 19 i32 5, label %label5 20 ] 21 22label0: 23 %ret.0.load18 = load volatile i32, i32* %ret, align 4 24 %inc = add nsw i32 %ret.0.load18, 1 25 store volatile i32 %inc, i32* %ret, align 4 26 br label %while.body 27 28label1: 29 %ret.0.load19 = load volatile i32, i32* %ret, align 4 30 %inc2 = add nsw i32 %ret.0.load19, 1 31 store volatile i32 %inc2, i32* %ret, align 4 32 br label %while.body 33 34label2: 35 %ret.0.load20 = load volatile i32, i32* %ret, align 4 36 %inc4 = add nsw i32 %ret.0.load20, 1 37 store volatile i32 %inc4, i32* %ret, align 4 38 br label %while.body 39 40label3: 41 %ret.0.load21 = load volatile i32, i32* %ret, align 4 42 %inc6 = add nsw i32 %ret.0.load21, 1 43 store volatile i32 %inc6, i32* %ret, align 4 44 br label %while.body 45 46label4: 47 %ret.0.load22 = load volatile i32, i32* %ret, align 4 48 %inc8 = add nsw i32 %ret.0.load22, 1 49 store volatile i32 %inc8, i32* %ret, align 4 50 br label %while.body 51 52label5: 53 %ret.0.load23 = load volatile i32, i32* %ret, align 4 54 %inc10 = add nsw i32 %ret.0.load23, 1 55 store volatile i32 %inc10, i32* %ret, align 4 56 br label %while.body 57 58label6: 59 store volatile i32 0, i32* %ret, align 4 60 br label %while.body 61} 62 63attributes #0 = { noreturn nounwind } 64