@@ -10,7 +10,7 @@ define void @test1() nounwind {
10
10
; CHECK-NEXT: [[INDVAR_CONV:%.*]] = sitofp i32 [[IV_INT]] to double
11
11
; CHECK-NEXT: [[TMP0:%.*]] = tail call i32 @foo(double [[INDVAR_CONV]]) #[[ATTR0:[0-9]+]]
12
12
; CHECK-NEXT: [[DOTINT]] = add nuw nsw i32 [[IV_INT]], 1
13
- ; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i32 [[DOTINT]], 10000
13
+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp samesign ult i32 [[DOTINT]], 10000
14
14
; CHECK-NEXT: br i1 [[TMP1]], label [[BB]], label [[RETURN:%.*]]
15
15
; CHECK: return:
16
16
; CHECK-NEXT: ret void
@@ -145,7 +145,7 @@ define double @test_max_be() {
145
145
; CHECK-NEXT: [[INDVAR_CONV:%.*]] = sitofp i32 [[TMP11_INT]] to double
146
146
; CHECK-NEXT: [[TMP12]] = fadd double [[TMP10]], [[INDVAR_CONV]]
147
147
; CHECK-NEXT: [[TMP13_INT]] = add nuw nsw i32 [[TMP11_INT]], 1
148
- ; CHECK-NEXT: [[TMP14:%.*]] = icmp ult i32 [[TMP13_INT]], 99999
148
+ ; CHECK-NEXT: [[TMP14:%.*]] = icmp samesign ult i32 [[TMP13_INT]], 99999
149
149
; CHECK-NEXT: br i1 [[TMP14]], label [[BB22]], label [[BB6:%.*]]
150
150
; CHECK: bb22:
151
151
; CHECK-NEXT: br i1 true, label [[BB8]], label [[BB6]]
@@ -184,7 +184,7 @@ define float @test_max_be2() {
184
184
; CHECK-NEXT: [[INDVAR_CONV:%.*]] = sitofp i32 [[TMP11_INT]] to float
185
185
; CHECK-NEXT: [[TMP12]] = fadd float [[TMP10]], [[INDVAR_CONV]]
186
186
; CHECK-NEXT: [[TMP13_INT]] = add nuw nsw i32 [[TMP11_INT]], 1
187
- ; CHECK-NEXT: [[TMP14:%.*]] = icmp ult i32 [[TMP13_INT]], 99999
187
+ ; CHECK-NEXT: [[TMP14:%.*]] = icmp samesign ult i32 [[TMP13_INT]], 99999
188
188
; CHECK-NEXT: br i1 [[TMP14]], label [[BB22]], label [[BB6:%.*]]
189
189
; CHECK: bb22:
190
190
; CHECK-NEXT: br i1 true, label [[BB8]], label [[BB6]]
@@ -224,7 +224,7 @@ define float @test_max_be3() {
224
224
; CHECK-NEXT: [[INDVAR_CONV:%.*]] = sitofp i32 [[TMP11_INT]] to float
225
225
; CHECK-NEXT: [[TMP12]] = fadd float [[TMP10]], [[INDVAR_CONV]]
226
226
; CHECK-NEXT: [[TMP13_INT]] = add nuw nsw i32 [[TMP11_INT]], 1
227
- ; CHECK-NEXT: [[TMP14:%.*]] = icmp ult i32 [[TMP13_INT]], 99999
227
+ ; CHECK-NEXT: [[TMP14:%.*]] = icmp samesign ult i32 [[TMP13_INT]], 99999
228
228
; CHECK-NEXT: br i1 [[TMP14]], label [[BB22]], label [[BB6:%.*]]
229
229
; CHECK: bb22:
230
230
; CHECK-NEXT: br i1 true, label [[BB8]], label [[BB6]]
@@ -263,7 +263,7 @@ define void @fcmp1() nounwind {
263
263
; CHECK-NEXT: br label [[BB:%.*]]
264
264
; CHECK: bb:
265
265
; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[BACKEDGE:%.*]] ]
266
- ; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i64 [[IV]], 20000
266
+ ; CHECK-NEXT: [[CMP1:%.*]] = icmp samesign ult i64 [[IV]], 20000
267
267
; CHECK-NEXT: br i1 [[CMP1]], label [[BACKEDGE]], label [[RETURN:%.*]]
268
268
; CHECK: backedge:
269
269
; CHECK-NEXT: [[IV_FP:%.*]] = sitofp i64 [[IV]] to double
@@ -299,7 +299,7 @@ define void @fcmp2() nounwind {
299
299
; CHECK-NEXT: br label [[BB:%.*]]
300
300
; CHECK: bb:
301
301
; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[BACKEDGE:%.*]] ]
302
- ; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i64 [[IV]], 2000
302
+ ; CHECK-NEXT: [[CMP1:%.*]] = icmp samesign ult i64 [[IV]], 2000
303
303
; CHECK-NEXT: br i1 [[CMP1]], label [[BACKEDGE]], label [[RETURN:%.*]]
304
304
; CHECK: backedge:
305
305
; CHECK-NEXT: [[IV_FP:%.*]] = sitofp i64 [[IV]] to double
@@ -389,7 +389,7 @@ define void @pr55505_remove_redundant_fptosi_for_float_iv(i32 %index, ptr %dst)
389
389
; CHECK-NEXT: call void @use.i16(i16 [[FLOAT_IV_INT_TRUNC2]])
390
390
; CHECK-NEXT: call void @use.i64(i64 [[FLOAT_IV_INT_ZEXT]])
391
391
; CHECK-NEXT: [[FLOAT_IV_NEXT_INT]] = add nsw i32 [[FLOAT_IV_INT]], -1
392
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i32 [[FLOAT_IV_NEXT_INT]], 0
392
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp samesign ugt i32 [[FLOAT_IV_NEXT_INT]], 0
393
393
; CHECK-NEXT: br i1 [[CMP]], label [[LOOP]], label [[EXIT:%.*]]
394
394
; CHECK: exit:
395
395
; CHECK-NEXT: ret void
0 commit comments