Skip to content

Commit 8a2ef91

Browse files
[IndVarSimplify] Precommit tests (NFC)
1 parent 5e46103 commit 8a2ef91

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

llvm/test/Transforms/IndVarSimplify/floating-point-iv.ll

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,3 +417,87 @@ loop:
417417
exit:
418418
ret void
419419
}
420+
421+
; FIXME: These are miscompilation issues.
422+
define void @test_fp_to_int_irrealizable_initval() {
423+
; CHECK-LABEL: @test_fp_to_int_irrealizable_initval(
424+
; CHECK-NEXT: entry:
425+
; CHECK-NEXT: br label [[LOOP:%.*]]
426+
; CHECK: loop:
427+
; CHECK-NEXT: [[IV_INT:%.*]] = phi i32 [ 100000000, [[ENTRY:%.*]] ], [ [[IV_NEXT_INT:%.*]], [[LOOP]] ]
428+
; 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
431+
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
432+
; CHECK: exit:
433+
; CHECK-NEXT: ret void
434+
;
435+
entry:
436+
br label %loop
437+
438+
loop:
439+
%iv = phi float [ 1.000000e+08, %entry ], [ %iv.next, %loop ]
440+
call void @opaque()
441+
%iv.next = fadd float %iv, -1.700000e+01
442+
%cmp = fcmp ult float %iv.next, 2.500000e+01
443+
br i1 %cmp, label %exit, label %loop
444+
445+
exit:
446+
ret void
447+
}
448+
449+
define void @test_fp_to_int_irrealizable_exitval() {
450+
; CHECK-LABEL: @test_fp_to_int_irrealizable_exitval(
451+
; CHECK-NEXT: entry:
452+
; CHECK-NEXT: br label [[LOOP:%.*]]
453+
; CHECK: loop:
454+
; CHECK-NEXT: [[IV_INT:%.*]] = phi i32 [ 25, [[ENTRY:%.*]] ], [ [[IV_NEXT_INT:%.*]], [[LOOP]] ]
455+
; 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
458+
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
459+
; CHECK: exit:
460+
; CHECK-NEXT: ret void
461+
;
462+
entry:
463+
br label %loop
464+
465+
loop:
466+
%iv = phi float [ 2.500000e+01, %entry ], [ %iv.next, %loop ]
467+
call void @opaque()
468+
%iv.next = fadd float %iv, 1.700000e+01
469+
%cmp = fcmp ugt float %iv.next, 1.000000e+08
470+
br i1 %cmp, label %exit, label %loop
471+
472+
exit:
473+
ret void
474+
}
475+
476+
define void @test_fp_to_int_irrealizable_negative_exitval() {
477+
; CHECK-LABEL: @test_fp_to_int_irrealizable_negative_exitval(
478+
; CHECK-NEXT: entry:
479+
; CHECK-NEXT: br label [[LOOP:%.*]]
480+
; CHECK: loop:
481+
; CHECK-NEXT: [[IV_INT:%.*]] = phi i32 [ -25, [[ENTRY:%.*]] ], [ [[IV_NEXT_INT:%.*]], [[LOOP]] ]
482+
; 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
485+
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
486+
; CHECK: exit:
487+
; CHECK-NEXT: ret void
488+
;
489+
entry:
490+
br label %loop
491+
492+
loop:
493+
%iv = phi float [ -2.500000e+01, %entry ], [ %iv.next, %loop ]
494+
call void @opaque()
495+
%iv.next = fadd float %iv, -1.700000e+01
496+
%cmp = fcmp ult float %iv.next, -1.000000e+08
497+
br i1 %cmp, label %exit, label %loop
498+
499+
exit:
500+
ret void
501+
}
502+
503+
declare void @opaque()

0 commit comments

Comments
 (0)