@@ -11,34 +11,29 @@ module {
1111 ^bb2: // pred: ^bb1
1212 cir.return
1313 }
14- // CHECK: cir.func @redundant_br() {
15- // CHECK-NOT: ^
16- // CHECK: %[[A:.*]] = cir.alloca !cir.int<u, 32>, !cir.ptr<!cir.int<u, 32>>, ["a", init] {alignment = 4 : i64}
17- // CHECK: %[[FOUR:.*]] = cir.const #cir.int<4> : !cir.int<u, 32>
18- // CHECK: cir.store %[[FOUR]], %[[A]] : !cir.int<u, 32>, !cir.ptr<!cir.int<u, 32>>
19- // CHECK-NOT: cir.br
20- // CHECK-NOT: ^
21- // CHECK: cir.return
22- // CHECK: }
14+ // CHECK: cir.func @redundant_br() {
15+ // CHECK-NEXT: %[[A:.*]] = cir.alloca !cir.int<u, 32>, !cir.ptr<!cir.int<u, 32>>, ["a", init] {alignment = 4 : i64}
16+ // CHECK-NEXT: %[[FOUR:.*]] = cir.const #cir.int<4> : !cir.int<u, 32>
17+ // CHECK-NEXT: cir.store %[[FOUR]], %[[A]] : !cir.int<u, 32>, !cir.ptr<!cir.int<u, 32>>
18+ // CHECK-NEXT: cir.return
19+ // CHECK-NEXT: }
2320
2421 cir.func @empty_scope() {
2522 cir.scope {
2623 }
2724 cir.return
2825 }
29- // CHECK: cir.func @empty_scope() {
30- // CHECK-NOT: cir.scope
31- // CHECK: cir.return
32- // CHECK: }
26+ // CHECK: cir.func @empty_scope() {
27+ // CHECK-NEXT: cir.return
28+ // CHECK-NEXT: }
3329
3430 cir.func @cast1(%arg0: !cir.bool) -> !cir.bool {
3531 %0 = cir.cast(bool_to_int, %arg0 : !cir.bool), !cir.int<s, 32>
3632 %1 = cir.cast(int_to_bool, %0 : !cir.int<s, 32>), !cir.bool
3733 cir.return %1 : !cir.bool
3834 }
39- // CHECK: cir.func @cast1(%[[ARG0:.*]]: !cir.bool) -> !cir.bool
40- // CHECK-NOT: cir.cast
41- // CHECK: cir.return %[[ARG0]] : !cir.bool
35+ // CHECK: cir.func @cast1(%[[ARG0:.*]]: !cir.bool) -> !cir.bool
36+ // CHECK-NEXT: cir.return %[[ARG0]] : !cir.bool
4237
4338 cir.func @cast2(%arg0: !cir.int<s, 32>) -> !cir.bool {
4439 %0 = cir.cast(int_to_bool, %arg0 : !cir.int<s, 32>), !cir.bool
@@ -47,26 +42,20 @@ module {
4742 %3 = cir.cast(int_to_bool, %2 : !cir.int<s, 64>), !cir.bool
4843 cir.return %3 : !cir.bool
4944 }
50- // CHECK: cir.func @cast2(%[[ARG0:.*]]: !cir.int<s, 32>) -> !cir.bool
51- // CHECK: %[[CAST:.*]] = cir.cast(int_to_bool, %[[ARG0]] : !cir.int<s, 32>), !cir.bool
52- // CHECK-NOT: cir.cast
53- // CHECK: cir.return %[[CAST]] : !cir.bool
45+ // CHECK: cir.func @cast2(%[[ARG0:.*]]: !cir.int<s, 32>) -> !cir.bool
46+ // CHECK-NEXT: %[[CAST:.*]] = cir.cast(int_to_bool, %[[ARG0]] : !cir.int<s, 32>), !cir.bool
47+ // CHECK-NEXT: cir.return %[[CAST]] : !cir.bool
5448
5549 cir.func @no_fold_cast(%arg0: !cir.int<s, 32>) -> !cir.int<s, 64> {
5650 %0 = cir.cast(int_to_bool, %arg0 : !cir.int<s, 32>), !cir.bool
5751 %1 = cir.cast(bool_to_int, %0 : !cir.bool), !cir.int<s, 32>
5852 %2 = cir.cast(integral, %1 : !cir.int<s, 32>), !cir.int<s, 64>
5953 cir.return %2 : !cir.int<s, 64>
6054 }
61- // CHECK: cir.func @no_fold_cast(%[[ARG0:.*]]: !cir.int<s, 32>) -> !cir.int<s, 64>
62- // CHECK: %[[CAST:.*]] = cir.cast(int_to_bool, %[[ARG0]] : !cir.int<s, 32>), !cir.bool
63- // CHECK: %[[CAST2:.*]] = cir.cast(bool_to_int, %[[CAST]] : !cir.bool), !cir.int<s, 32>
64- // CHECK: %[[CAST3:.*]] = cir.cast(integral, %[[CAST2]] : !cir.int<s, 32>), !cir.int<s, 64>
65- // CHECK: cir.return %[[CAST3]] : !cir.int<s, 64>
55+ // CHECK: cir.func @no_fold_cast(%[[ARG0:.*]]: !cir.int<s, 32>) -> !cir.int<s, 64>
56+ // CHECK-NEXT: %[[CAST:.*]] = cir.cast(int_to_bool, %[[ARG0]] : !cir.int<s, 32>), !cir.bool
57+ // CHECK-NEXT: %[[CAST2:.*]] = cir.cast(bool_to_int, %[[CAST]] : !cir.bool), !cir.int<s, 32>
58+ // CHECK-NEXT: %[[CAST3:.*]] = cir.cast(integral, %[[CAST2]] : !cir.int<s, 32>), !cir.int<s, 64>
59+ // CHECK-NEXT: cir.return %[[CAST3]] : !cir.int<s, 64>
6660
6761}
68-
69-
70-
71-
72-
0 commit comments