diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-06-24 21:36:59 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-06-24 21:36:59 +0000 |
commit | 5a89ba7343a6f108397eab94fa843098b22cde74 (patch) | |
tree | c37ad8e5fcc7c43016c50b6c45f31520532e0b3e /llvm/test/Transforms/LoopUnroll/runtime-loop-multiple-exits.ll | |
parent | 1e5116cbb3a00bc70d3fc6f0da24dcfcfbce4bf0 (diff) | |
download | bcm5719-llvm-5a89ba7343a6f108397eab94fa843098b22cde74.tar.gz bcm5719-llvm-5a89ba7343a6f108397eab94fa843098b22cde74.zip |
InstCombine: Preserve nuw when reassociating nuw ops [1/3]
Alive says this is OK.
llvm-svn: 364233
Diffstat (limited to 'llvm/test/Transforms/LoopUnroll/runtime-loop-multiple-exits.ll')
-rw-r--r-- | llvm/test/Transforms/LoopUnroll/runtime-loop-multiple-exits.ll | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/test/Transforms/LoopUnroll/runtime-loop-multiple-exits.ll b/llvm/test/Transforms/LoopUnroll/runtime-loop-multiple-exits.ll index 397e907a8e9..9f97358668b 100644 --- a/llvm/test/Transforms/LoopUnroll/runtime-loop-multiple-exits.ll +++ b/llvm/test/Transforms/LoopUnroll/runtime-loop-multiple-exits.ll @@ -172,7 +172,7 @@ define void @test3(i64 %trip, i64 %add) { ; PROLOG: loop_exiting_bb1.7: ; PROLOG-NEXT: switch i64 %sum.next.6, label %loop_latch.7 ; PROLOG: loop_latch.7: -; PROLOG-NEXT: %iv_next.7 = add nsw i64 %iv, 8 +; PROLOG-NEXT: %iv_next.7 = add nuw nsw i64 %iv, 8 ; PROLOG-NEXT: %sum.next.7 = add i64 %sum.next.6, %add ; PROLOG-NEXT: %cmp.7 = icmp eq i64 %iv_next.7, %trip ; PROLOG-NEXT: br i1 %cmp.7, label %exit2.loopexit.unr-lcssa, label %loop_header @@ -426,7 +426,7 @@ define i64 @test5(i64 %trip, i64 %add, i1 %cond) { ; PROLOG-NEXT: %result = phi i64 [ %result.ph, %exit1.loopexit ], [ %ivy.prol, %exit1.loopexit1 ] ; PROLOG-NEXT: ret i64 %result ; PROLOG: loop_latch.7: -; PROLOG: %iv_next.7 = add nsw i64 %iv, 8 +; PROLOG: %iv_next.7 = add nuw nsw i64 %iv, 8 entry: br label %loop_header @@ -560,7 +560,7 @@ loopexit1: ; preds = %header } ; Nested loop and inner loop is unrolled -; FIXME: we cannot unroll with epilog remainder currently, because +; FIXME: we cannot unroll with epilog remainder currently, because ; the outer loop does not contain the epilog preheader and epilog exit (while ; infact it should). This causes us to choke up on LCSSA form being incorrect in ; outer loop. However, the exit block where LCSSA fails, is infact still within @@ -578,7 +578,7 @@ define void @test8() { ; PROLOG: %lcmp.mod = icmp eq i64 ; PROLOG-NEXT: br i1 %lcmp.mod, label %innerH.prol.loopexit, label %innerH.prol.preheader ; PROLOG: latch.6: -; PROLOG-NEXT: %tmp4.7 = add nsw i64 %tmp3, 8 +; PROLOG-NEXT: %tmp4.7 = add nuw nsw i64 %tmp3, 8 ; PROLOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.7 ; PROLOG: latch.7 ; PROLOG-NEXT: %tmp6.7 = icmp ult i64 %tmp4.7, 100 |