xref: /llvm-project/llvm/test/tools/llvm-reduce/reduce-conditionals.ll (revision 08d1c43c7023a2e955c43fbf4c3f1635f91521e0)
1; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=simplify-conditionals-true --test FileCheck --test-arg --check-prefixes=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t
2; RUN: FileCheck --check-prefixes=RESULT-TRUE %s < %t
3
4; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=simplify-conditionals-false --test FileCheck --test-arg --check-prefixes=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t
5; RUN: FileCheck --check-prefixes=RESULT-FALSE %s < %t
6
7; CHECK-INTERESTINGNESS-LABEL: @func(
8; CHECK-INTERESTINGNESS: store i32 1,
9
10; RESULT-TRUE: bb0:
11; RESULT-TRUE: store i32 0, ptr null, align 4
12; RESULT-TRUE-NEXT: store i32 1, ptr null, align 4
13; RESULT-TRUE-NEXT: br label %bb2
14; RESULT-TRUE-NOT: bb1
15
16
17; RESULT-FALSE: bb0:
18; RESULT-FALSE: store i32 0, ptr null, align 4
19; RESULT-FALSE-NEXT: br label %bb2
20
21; RESULT-FALSE: bb1: ; No predecessors!
22; RESULT-FALSE-NEXT: store i32 1, ptr null, align 4
23; RESULT-FALSE-NEXT: br label %bb3
24define void @func(i1 %cond0, i1 %cond1) {
25bb0:
26  store i32 0, ptr null
27  br i1 %cond0, label %bb1, label %bb2
28
29bb1:
30  store i32 1, ptr null
31  br i1 %cond1, label %bb2, label %bb3
32
33bb2:
34  store i32 2, ptr null
35  br label %bb3
36
37bb3:
38  ret void
39}
40