|
28 | 28 | ret i64 %res
|
29 | 29 | }
|
30 | 30 |
|
| 31 | +define i64 @limit_i64_eq_7_commuted(i64 %x) { |
| 32 | +; CHECK-LABEL: @limit_i64_eq_7_commuted( |
| 33 | +; CHECK-NEXT: entry: |
| 34 | +; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[X:%.*]], 7 |
| 35 | +; CHECK-NEXT: br i1 [[CMP]], label [[END:%.*]], label [[BODY:%.*]] |
| 36 | +; CHECK: body: |
| 37 | +; CHECK-NEXT: br label [[BODY]] |
| 38 | +; CHECK: end: |
| 39 | +; CHECK-NEXT: [[RES:%.*]] = phi i64 [ [[X]], [[END]] ], [ 7, [[ENTRY:%.*]] ] |
| 40 | +; CHECK-NEXT: ret i64 [[RES]] |
| 41 | +; |
| 42 | +entry: |
| 43 | + %cmp = icmp eq i64 %x, 7 |
| 44 | + br i1 %cmp, label %body, label %end |
| 45 | +body: |
| 46 | + br label %end |
| 47 | +end: |
| 48 | + %res = phi i64 [ %x, %body ], [ 7, %entry ] |
| 49 | + ret i64 %res |
| 50 | +} |
| 51 | + |
| 52 | +define i64 @neg_limit_i64_eq_7(i64 %x) { |
| 53 | +; CHECK-LABEL: @neg_limit_i64_eq_7( |
| 54 | +; CHECK-NEXT: entry: |
| 55 | +; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[X:%.*]], 7 |
| 56 | +; CHECK-NEXT: br i1 [[CMP]], label [[END:%.*]], label [[BODY:%.*]] |
| 57 | +; CHECK: body: |
| 58 | +; CHECK-NEXT: br label [[BODY]] |
| 59 | +; CHECK: end: |
| 60 | +; CHECK-NEXT: [[RES:%.*]] = phi i64 [ [[X]], [[ENTRY:%.*]] ], [ 7, [[END]] ] |
| 61 | +; CHECK-NEXT: ret i64 [[RES]] |
| 62 | +; |
| 63 | +entry: |
| 64 | + %cmp = icmp eq i64 %x, 7 |
| 65 | + br i1 %cmp, label %body, label %end |
| 66 | +body: |
| 67 | + br label %end |
| 68 | +end: |
| 69 | + %res = phi i64 [ %x, %entry ], [ 7, %body ] |
| 70 | + ret i64 %res |
| 71 | +} |
| 72 | + |
31 | 73 | ; %x either eq 255 or is set to 255
|
32 | 74 | define i64 @limit_i64_ne_255(i64 %x) {
|
33 | 75 | ; CHECK-LABEL: @limit_i64_ne_255(
|
|
0 commit comments