@@ -6,8 +6,8 @@ define i32 @test_preserve_and(i8* %a, i8* %b, i8* %c, i8* %d) {
6
6
; CHECK-LABEL: define {{.*}} @test_preserve_and({{.*}}
7
7
; CHECK-NEXT: entry:
8
8
; CHECK-NEXT: [[C_1:%.*]] = icmp ult i8* [[A:%.*]], [[B:%.*]], !annotation !0
9
- ; CHECK-NEXT: [[C_2:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]]
10
- ; CHECK-NEXT: [[OR_COND:%.*]] = and i1 [[C_1]], [[C_2]]
9
+ ; CHECK-NEXT: [[C_2:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]], !annotation !0
10
+ ; CHECK-NEXT: [[OR_COND:%.*]] = and i1 [[C_1]], [[C_2]], !annotation !0
11
11
; CHECK-NEXT: br i1 [[OR_COND]], label [[CONT1:%.*]], label [[TRAP:%.*]], !annotation !0
12
12
; CHECK: trap: ; preds = %entry
13
13
; CHECK-NEXT: call void @fn1()
@@ -39,8 +39,8 @@ define i32 @test_preserve_or(i8* %a, i8* %b, i8* %c, i8* %d) {
39
39
; CHECK-LABEL: define {{.*}} @test_preserve_or({{.*}}
40
40
; CHECK-NEXT: entry:
41
41
; CHECK-NEXT: [[C_1:%.*]] = icmp uge i8* [[A:%.*]], [[B:%.*]], !annotation !0
42
- ; CHECK-NEXT: [[C_2:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]]
43
- ; CHECK-NEXT: [[OR_COND:%.*]] = or i1 [[C_1]], [[C_2]]
42
+ ; CHECK-NEXT: [[C_2:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]], !annotation !0
43
+ ; CHECK-NEXT: [[OR_COND:%.*]] = or i1 [[C_1]], [[C_2]], !annotation !0
44
44
; CHECK-NEXT: br i1 [[OR_COND]], label [[TRAP:%.*]], label [[CONT1:%.*]], !annotation !0
45
45
; CHECK: trap: ; preds = %entry
46
46
; CHECK-NEXT: call void @fn1()
@@ -73,9 +73,9 @@ define i32 @test_preserve_or_not(i8* %a, i8* %b, i8* %c, i8* %d) {
73
73
; CHECK-NEXT: entry:
74
74
; CHECK-NEXT: [[C_1:%.*]] = icmp ult i8* [[A:%.*]], [[B:%.*]], !annotation !0
75
75
; CHECK-NEXT: [[C_2:%.*]] = xor i1 [[C_1]], true
76
- ; CHECK-NEXT: [[C_2_NOT:%.*]] = xor i1 [[C_2]], true
77
- ; CHECK-NEXT: [[C_3:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]]
78
- ; CHECK-NEXT: [[OR_COND:%.*]] = or i1 [[C_2_NOT]], [[C_3]]
76
+ ; CHECK-NEXT: [[C_2_NOT:%.*]] = xor i1 [[C_2]], true, !annotation !0
77
+ ; CHECK-NEXT: [[C_3:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]], !annotation !0
78
+ ; CHECK-NEXT: [[OR_COND:%.*]] = or i1 [[C_2_NOT]], [[C_3]], !annotation !0
79
79
; CHECK-NEXT: br i1 [[OR_COND]], label [[TRAP:%.*]], label [[CONT1:%.*]], !annotation !0
80
80
; CHECK: trap: ; preds = %entry
81
81
; CHECK-NEXT: call void @fn1()
@@ -111,7 +111,7 @@ define i32 @test_or_not_no_annotation(i8* %a, i8* %b, i8* %c, i8* %d) {
111
111
; CHECK-NEXT: [[C_1:%.*]] = icmp ult i8* [[A:%.*]], [[B:%.*]], !annotation !0
112
112
; CHECK-NEXT: [[C_2:%.*]] = xor i1 [[C_1]], true
113
113
; CHECK-NEXT: [[C_2_NOT:%.*]] = xor i1 [[C_2]], true
114
- ; CHECK-NEXT: [[C_3:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]]
114
+ ; CHECK-NEXT: [[C_3:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]], !annotation !0
115
115
; CHECK-NEXT: [[OR_COND:%.*]] = or i1 [[C_2_NOT]], [[C_3]]
116
116
; CHECK-NEXT: br i1 [[OR_COND]], label [[TRAP:%.*]], label [[CONT1:%.*]], !annotation !0
117
117
; CHECK: trap: ; preds = %entry
0 commit comments