55 lines · plain
1; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=instructions-to-return --test FileCheck --test-arg --check-prefix=INTERESTING --test-arg %s --test-arg --input-file %s -o %t2; RUN: FileCheck --check-prefix=RESULT %s < %t3 4@gv = global i32 0, align 45 6; INTERESTING-LABEL: @callbr0(7; INTERESTING: %load0 = load i32, ptr %arg08; INTERESTING: store i32 %load0, ptr @gv9 10; RESULT-LABEL: define void @callbr0(ptr %arg0) {11; RESULT: %load0 = load i32, ptr %arg0, align 412; RESULT-NEXT: %callbr = callbr i32 asm13define void @callbr0(ptr %arg0) {14entry:15 %load0 = load i32, ptr %arg016 %callbr = callbr i32 asm "", "=r,r,!i,!i"(i32 %load0)17 to label %one [label %two, label %three]18one:19 store i32 %load0, ptr @gv20 ret void21 22two:23 store i32 %load0, ptr @gv24 ret void25 26three:27 store i32 %load0, ptr @gv28 ret void29}30 31; INTERESTING-LABEL: @callbr1(32; INTERESTING: %load0 = load i32, ptr %arg033 34; RESULT-LABEL: define i32 @callbr1(ptr %arg0) {35; RESULT-NEXT: entry:36; RESULT-NEXT: %load0 = load i32, ptr %arg037; RESULT-NEXT: ret i32 %load038define void @callbr1(ptr %arg0) {39entry:40 %load0 = load i32, ptr %arg041 %callbr = callbr i32 asm "", "=r,r,!i,!i"(i32 %load0)42 to label %one [label %two, label %three]43one:44 store i32 %load0, ptr @gv45 ret void46 47two:48 store i32 %load0, ptr @gv49 ret void50 51three:52 store i32 %load0, ptr @gv53 ret void54}55