xref: /llvm-project/llvm/test/tools/llvm-reduce/no-duplicate-switch-case.ll (revision 5b4f6d8b4b861cad94bf85e9492ac9b1fb4e15e2)
1; Ensure that llvm-reduce doesn't try to introduce a 0 or 1
2; into a SwitchInst that already has one of those
3
4; RUN: llvm-reduce --delta-passes=operands-zero --test %python --test-arg %p/Inputs/remove-bbs.py -abort-on-invalid-reduction %s -o %t
5
6; RUN: llvm-reduce --delta-passes=operands-one --test %python --test-arg %p/Inputs/remove-bbs.py -abort-on-invalid-reduction %s -o %t
7
8declare i32 @g()
9
10define void @f(ptr %0, i1 %1) {
11  %3 = alloca i32, align 4
12  store ptr null, ptr %0, align 8
13  %4 = call i32 @g()
14  br i1 %1, label %5, label %7
15
165:                                                ; preds = %2
17  br label %6
18
196:                                                ; preds = %5
20  store i32 0, ptr %3, align 4
21  br label %interesting2
22
237:                                                ; preds = %2
24  br label %interesting2
25
26interesting2:                                     ; preds = %7, %6
27  %x9 = load i32, ptr %3, align 4
28  switch i32 %x9, label %uninteresting [
29    i32 3, label %interesting1
30    i32 12, label %interesting1
31  ]
32
33interesting1:                                     ; preds = %8, %8
34  ret void
35
36uninteresting:                                    ; preds = %8
37  unreachable
38}
39