[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / tools / llvm-reduce / remove-bbs.ll
bloba1fe9a3468d126e4c4345c04195a3bbf60197c2c
1 ; Test that llvm-reduce can remove uninteresting Basic Blocks, and remove them from instructions (i.e. SwitchInst, BranchInst and IndirectBrInst)
2 ; Note: if an uninteresting BB is the default case for a switch, the instruction is removed altogether (since the default case cannot be replaced)
4 ; RUN: llvm-reduce -abort-on-invalid-reduction --delta-passes=basic-blocks --test FileCheck --test-arg --check-prefix=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t
5 ; RUN: FileCheck -implicit-check-not=uninteresting %s < %t
7 ; CHECK-INTERESTINGNESS: store i32 0
8 ; CHECK-INTERESTINGNESS: store i32 1
9 ; CHECK-INTERESTINGNESS: store i32 2
11 define void @main() {
12 interesting:
13   store i32 0, ptr null
14   ; CHECK-NOT: switch i32 0, label %uninteresting
15   switch i32 0, label %uninteresting [
16     i32 1, label %interesting2
17   ]
19 uninteresting:
20   ret void
22 interesting2:
23   store i32 1, ptr null
24   ; CHECK: switch i32 1, label %interesting3
25   switch i32 1, label %interesting3 [
26     ; CHECK-NOT: i32 0, label %uninteresting
27     i32 0, label %uninteresting
28     ; CHECK: i32 1, label %interesting3
29     i32 1, label %interesting3
30   ]
32 interesting3:
33   store i32 2, ptr null
34   ; CHECK: br label %interesting2
35   br i1 true, label %interesting2, label %uninteresting