xref: /llvm-project/llvm/test/tools/llvm-reduce/reduce-bb-merge-next-block-invalid-reduction.ll (revision f02bc70c7d53e5898abddc83f249ef28b8b4b9b6)
1; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=basic-blocks --test FileCheck --test-arg --check-prefixes=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t
2; RUN: FileCheck %s < %t
3
4; CHECK-INTERESTINGNESS: store i32 0,
5; CHECK-INTERESTINGNESS: store i32 1,
6
7; CHECK: bb:
8; CHECK-NEXT: br label %bb10
9
10; CHECK: bb10:
11; CHECK-NEXT: br label %bb11
12
13; CHECK: bb11:
14; CHECK-NEXT: br label %bb12
15
16; CHECK: bb12:
17; CHECK-NEXT: switch i32 %arg, label %bb13 [
18; CHECK-NEXT: i32 1, label %bb13
19; CHECK-NEXT: i32 0, label %bb18
20; CHECK-NEXT: ]
21
22; CHECK: bb13:
23; CHECK-NEXT: br label %bb17
24
25; CHECK: bb17:
26; CHECK-NEXT: store i32 0
27; CHECK-NEXT: br label %bb17
28
29; CHECK: bb18:
30; CHECK-NEXT: store i32 1
31; CHECK-NEXT: br label %bb18
32define amdgpu_kernel void @wibble(i32 %arg, i1 %arg1, i1 %arg2) {
33bb:
34  br label %bb10
35
36bb10:                                             ; preds = %bb
37  br label %bb11
38
39bb11:                                             ; preds = %bb10
40  br label %bb12
41
42bb12:                                             ; preds = %bb11
43  switch i32 %arg, label %bb13 [
44    i32 1, label %bb13
45    i32 0, label %bb18
46  ]
47
48bb13:                                             ; preds = %bb12, %bb12
49  br i1 %arg1, label %bb14, label %bb17
50
51bb14:                                             ; preds = %bb15, %bb13
52  %tmp = phi i32 [ 0, %bb15 ], [ 0, %bb13 ]
53  br label %bb15
54
55bb15:                                             ; preds = %bb14
56  %tmp16 = zext i32 %tmp to i64
57  br i1 %arg2, label %bb17, label %bb14
58
59bb17:                                             ; preds = %bb17, %bb15, %bb13
60  store i32 0, ptr addrspace(3) null
61  br label %bb17
62
63bb18:                                             ; preds = %bb18, %bb12
64  store i32 1, ptr addrspace(3) null
65  br label %bb18
66}
67