@@ -418,16 +418,15 @@ exit:
418418 ret void
419419}
420420
421- ; FIXME: These are miscompilation issues.
422421define void @test_fp_to_int_irrealizable_initval () {
423422; CHECK-LABEL: @test_fp_to_int_irrealizable_initval(
424423; CHECK-NEXT: entry:
425424; CHECK-NEXT: br label [[LOOP:%.*]]
426425; CHECK: loop:
427- ; CHECK-NEXT: [[IV_INT :%.*]] = phi i32 [ 100000000 , [[ENTRY:%.*]] ], [ [[IV_NEXT_INT :%.*]], [[LOOP]] ]
426+ ; CHECK-NEXT: [[IV :%.*]] = phi float [ 1.000000e+08 , [[ENTRY:%.*]] ], [ [[IV_NEXT :%.*]], [[LOOP]] ]
428427; CHECK-NEXT: call void @opaque()
429- ; CHECK-NEXT: [[IV_NEXT_INT ]] = add nsw i32 [[IV_INT ]], -17
430- ; CHECK-NEXT: [[CMP:%.*]] = icmp samesign ult i32 [[IV_NEXT_INT ]], 25
428+ ; CHECK-NEXT: [[IV_NEXT ]] = fadd float [[IV ]], -1.700000e+01
429+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult float [[IV_NEXT ]], 2.500000e+01
431430; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
432431; CHECK: exit:
433432; CHECK-NEXT: ret void
@@ -451,10 +450,10 @@ define void @test_fp_to_int_irrealizable_exitval() {
451450; CHECK-NEXT: entry:
452451; CHECK-NEXT: br label [[LOOP:%.*]]
453452; CHECK: loop:
454- ; CHECK-NEXT: [[IV_INT :%.*]] = phi i32 [ 25 , [[ENTRY:%.*]] ], [ [[IV_NEXT_INT :%.*]], [[LOOP]] ]
453+ ; CHECK-NEXT: [[IV :%.*]] = phi float [ 2.500000e+01 , [[ENTRY:%.*]] ], [ [[IV_NEXT :%.*]], [[LOOP]] ]
455454; CHECK-NEXT: call void @opaque()
456- ; CHECK-NEXT: [[IV_NEXT_INT ]] = add nuw nsw i32 [[IV_INT ]], 17
457- ; CHECK-NEXT: [[CMP:%.*]] = icmp samesign ugt i32 [[IV_NEXT_INT ]], 100000000
455+ ; CHECK-NEXT: [[IV_NEXT ]] = fadd float [[IV ]], 1.700000e+01
456+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt float [[IV_NEXT ]], 1.000000e+08
458457; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
459458; CHECK: exit:
460459; CHECK-NEXT: ret void
@@ -478,10 +477,10 @@ define void @test_fp_to_int_irrealizable_negative_exitval() {
478477; CHECK-NEXT: entry:
479478; CHECK-NEXT: br label [[LOOP:%.*]]
480479; CHECK: loop:
481- ; CHECK-NEXT: [[IV_INT :%.*]] = phi i32 [ -25 , [[ENTRY:%.*]] ], [ [[IV_NEXT_INT :%.*]], [[LOOP]] ]
480+ ; CHECK-NEXT: [[IV :%.*]] = phi float [ -2.500000e+01 , [[ENTRY:%.*]] ], [ [[IV_NEXT :%.*]], [[LOOP]] ]
482481; CHECK-NEXT: call void @opaque()
483- ; CHECK-NEXT: [[IV_NEXT_INT ]] = add nsw i32 [[IV_INT ]], -17
484- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[IV_NEXT_INT ]], -100000000
482+ ; CHECK-NEXT: [[IV_NEXT ]] = fadd float [[IV ]], -1.700000e+01
483+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult float [[IV_NEXT ]], -1.000000e+08
485484; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
486485; CHECK: exit:
487486; CHECK-NEXT: ret void
@@ -505,10 +504,10 @@ define void @test_fp_to_int_irrealizable_exitval_pow_2_24() {
505504; CHECK-NEXT: entry:
506505; CHECK-NEXT: br label [[LOOP:%.*]]
507506; CHECK: loop:
508- ; CHECK-NEXT: [[IV_INT :%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[IV_NEXT_INT :%.*]], [[LOOP]] ]
507+ ; CHECK-NEXT: [[IV :%.*]] = phi float [ 0.000000e+00 , [[ENTRY:%.*]] ], [ [[IV_NEXT :%.*]], [[LOOP]] ]
509508; CHECK-NEXT: call void @opaque()
510- ; CHECK-NEXT: [[IV_NEXT_INT ]] = add nuw nsw i32 [[IV_INT ]], 1
511- ; CHECK-NEXT: [[CMP:%.*]] = icmp samesign ugt i32 [[IV_NEXT_INT ]], 16777216
509+ ; CHECK-NEXT: [[IV_NEXT ]] = fadd float [[IV ]], 1.000000e+00
510+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt float [[IV_NEXT ]], 0x4170000000000000
512511; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
513512; CHECK: exit:
514513; CHECK-NEXT: ret void
0 commit comments