diff options
author | Nikita Popov <npopov@redhat.com> | 2023-12-05 11:52:31 +0100 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2023-12-05 14:09:36 +0100 |
commit | eecb99c5f66c8491766628a2925587e20f3b1dbd (patch) | |
tree | eed5a90aa318bfd0f33599f274c9409e4e7f8231 /llvm/test/Analysis | |
parent | 21b986637b950bb1762a38201223d62c4bca0dce (diff) | |
download | llvm-eecb99c5f66c8491766628a2925587e20f3b1dbd.zip llvm-eecb99c5f66c8491766628a2925587e20f3b1dbd.tar.gz llvm-eecb99c5f66c8491766628a2925587e20f3b1dbd.tar.bz2 |
[Tests] Add disjoint flag to some tests (NFC)
These tests rely on SCEV looking recognizing an "or" with no common
bits as an "add". Add the disjoint flag to relevant or instructions
in preparation for switching SCEV to use the flag instead of the
ValueTracking query. The IR with disjoint flag matches what
InstCombine would produce.
Diffstat (limited to 'llvm/test/Analysis')
10 files changed, 33 insertions, 33 deletions
diff --git a/llvm/test/Analysis/CostModel/X86/interleaved-load-half.ll b/llvm/test/Analysis/CostModel/X86/interleaved-load-half.ll index a0cbd74..457b00d 100644 --- a/llvm/test/Analysis/CostModel/X86/interleaved-load-half.ll +++ b/llvm/test/Analysis/CostModel/X86/interleaved-load-half.ll @@ -33,7 +33,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %1 = load half, ptr %arrayidx2, align 4 %add3 = fadd fast half %1, %mul store half %add3, ptr %arrayidx2, align 4 - %add4 = or i32 %i.073, 1 + %add4 = or disjoint i32 %i.073, 1 %arrayidx5 = getelementptr inbounds [120 x half], ptr @src, i32 0, i32 %add4 %2 = load half, ptr %arrayidx5, align 4 %mul6 = fmul fast half %2, %k @@ -41,7 +41,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %3 = load half, ptr %arrayidx8, align 4 %add9 = fadd fast half %3, %mul6 store half %add9, ptr %arrayidx8, align 4 - %add10 = or i32 %i.073, 2 + %add10 = or disjoint i32 %i.073, 2 %arrayidx11 = getelementptr inbounds [120 x half], ptr @src, i32 0, i32 %add10 %4 = load half, ptr %arrayidx11, align 4 %mul12 = fmul fast half %4, %k @@ -49,7 +49,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %5 = load half, ptr %arrayidx14, align 4 %add15 = fadd fast half %5, %mul12 store half %add15, ptr %arrayidx14, align 4 - %add16 = or i32 %i.073, 3 + %add16 = or disjoint i32 %i.073, 3 %arrayidx17 = getelementptr inbounds [120 x half], ptr @src, i32 0, i32 %add16 %6 = load half, ptr %arrayidx17, align 4 %mul18 = fmul fast half %6, %k @@ -57,7 +57,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %7 = load half, ptr %arrayidx20, align 4 %add21 = fadd fast half %7, %mul18 store half %add21, ptr %arrayidx20, align 4 - %add22 = or i32 %i.073, 4 + %add22 = or disjoint i32 %i.073, 4 %arrayidx23 = getelementptr inbounds [120 x half], ptr @src, i32 0, i32 %add22 %8 = load half, ptr %arrayidx23, align 4 %mul24 = fmul fast half %8, %k @@ -65,7 +65,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %9 = load half, ptr %arrayidx26, align 4 %add27 = fadd fast half %9, %mul24 store half %add27, ptr %arrayidx26, align 4 - %add28 = or i32 %i.073, 5 + %add28 = or disjoint i32 %i.073, 5 %arrayidx29 = getelementptr inbounds [120 x half], ptr @src, i32 0, i32 %add28 %10 = load half, ptr %arrayidx29, align 4 %mul30 = fmul fast half %10, %k @@ -73,7 +73,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %11 = load half, ptr %arrayidx32, align 4 %add33 = fadd fast half %11, %mul30 store half %add33, ptr %arrayidx32, align 4 - %add34 = or i32 %i.073, 6 + %add34 = or disjoint i32 %i.073, 6 %arrayidx35 = getelementptr inbounds [120 x half], ptr @src, i32 0, i32 %add34 %12 = load half, ptr %arrayidx35, align 4 %mul36 = fmul fast half %12, %k @@ -81,7 +81,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %13 = load half, ptr %arrayidx38, align 4 %add39 = fadd fast half %13, %mul36 store half %add39, ptr %arrayidx38, align 4 - %add40 = or i32 %i.073, 7 + %add40 = or disjoint i32 %i.073, 7 %arrayidx41 = getelementptr inbounds [120 x half], ptr @src, i32 0, i32 %add40 %14 = load half, ptr %arrayidx41, align 4 %mul42 = fmul fast half %14, %k diff --git a/llvm/test/Analysis/CostModel/X86/masked-interleaved-load-i16.ll b/llvm/test/Analysis/CostModel/X86/masked-interleaved-load-i16.ll index d42e431..e867e5f 100644 --- a/llvm/test/Analysis/CostModel/X86/masked-interleaved-load-i16.ll +++ b/llvm/test/Analysis/CostModel/X86/masked-interleaved-load-i16.ll @@ -51,7 +51,7 @@ for.body: %i1 = shl nuw nsw i64 %indvars.iv, 2 %arrayidx2 = getelementptr inbounds i16, ptr %points, i64 %i1 %i2 = load i16, ptr %arrayidx2, align 2 - %i3 = or i64 %i1, 1 + %i3 = or disjoint i64 %i1, 1 %arrayidx7 = getelementptr inbounds i16, ptr %points, i64 %i3 %i4 = load i16, ptr %arrayidx7, align 2 %arrayidx = getelementptr inbounds i16, ptr %x, i64 %indvars.iv @@ -113,7 +113,7 @@ for.body: %i1 = shl nuw nsw i64 %indvars.iv, 2 %arrayidx2 = getelementptr inbounds i16, ptr %points, i64 %i1 %i2 = load i16, ptr %arrayidx2, align 2 - %i3 = or i64 %i1, 1 + %i3 = or disjoint i64 %i1, 1 %arrayidx7 = getelementptr inbounds i16, ptr %points, i64 %i3 %i4 = load i16, ptr %arrayidx7, align 2 %arrayidx = getelementptr inbounds i16, ptr %x, i64 %indvars.iv diff --git a/llvm/test/Analysis/CostModel/X86/masked-interleaved-store-i16.ll b/llvm/test/Analysis/CostModel/X86/masked-interleaved-store-i16.ll index 171b8d0..741dd07 100644 --- a/llvm/test/Analysis/CostModel/X86/masked-interleaved-store-i16.ll +++ b/llvm/test/Analysis/CostModel/X86/masked-interleaved-store-i16.ll @@ -55,7 +55,7 @@ for.body: store i16 %0, ptr %arrayidx2, align 2 %arrayidx4 = getelementptr inbounds i16, ptr %y, i64 %indvars.iv %2 = load i16, ptr %arrayidx4, align 2 - %3 = or i64 %1, 1 + %3 = or disjoint i64 %1, 1 %arrayidx7 = getelementptr inbounds i16, ptr %points, i64 %3 store i16 %2, ptr %arrayidx7, align 2 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 @@ -117,7 +117,7 @@ for.body: store i16 %0, ptr %arrayidx2, align 2 %arrayidx4 = getelementptr inbounds i16, ptr %y, i64 %indvars.iv %2 = load i16, ptr %arrayidx4, align 2 - %3 = or i64 %1, 1 + %3 = or disjoint i64 %1, 1 %arrayidx7 = getelementptr inbounds i16, ptr %points, i64 %3 store i16 %2, ptr %arrayidx7, align 2 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 diff --git a/llvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll b/llvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll index 1c7bcda..4aa2458 100644 --- a/llvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll +++ b/llvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll @@ -40,7 +40,7 @@ for.body4: ; preds = %for.body4.preheader %j.02 = phi i64 [ %inc9, %for.body4 ], [ 0, %for.body4.preheader ] %B.addr.01 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ] %mul5 = shl nsw i64 %j.02, 1 - %add64 = or i64 %mul5, 1 + %add64 = or disjoint i64 %mul5, 1 %arrayidx7 = getelementptr inbounds i32, ptr %A, i64 %add64 %0 = load i32, ptr %arrayidx7, align 4 %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1 diff --git a/llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll b/llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll index 9a76154..7822e61 100644 --- a/llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll +++ b/llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll @@ -29,7 +29,7 @@ for.body: ; preds = %entry, %for.body %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add store i32 %conv, ptr %arrayidx, align 4 %mul = shl i64 %i.02, 1 - %add13 = or i64 %mul, 1 + %add13 = or disjoint i64 %mul, 1 %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %add13 %0 = load i32, ptr %arrayidx2, align 4 %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1 @@ -68,7 +68,7 @@ for.body: ; preds = %entry, %for.body %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add store i32 %conv, ptr %arrayidx, align 4 %mul1 = shl i64 %i.02, 1 - %add23 = or i64 %mul1, 1 + %add23 = or disjoint i64 %mul1, 1 %arrayidx3 = getelementptr inbounds i32, ptr %A, i64 %add23 %0 = load i32, ptr %arrayidx3, align 4 %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1 diff --git a/llvm/test/Analysis/DependenceAnalysis/GCD.ll b/llvm/test/Analysis/DependenceAnalysis/GCD.ll index 898158d..f4890a2 100644 --- a/llvm/test/Analysis/DependenceAnalysis/GCD.ll +++ b/llvm/test/Analysis/DependenceAnalysis/GCD.ll @@ -93,7 +93,7 @@ for.body3: ; preds = %for.cond1.preheader %mul5 = mul nsw i64 %i.03, 6 %mul6 = shl nsw i64 %j.02, 3 %add = add nsw i64 %mul5, %mul6 - %add7 = or i64 %add, 1 + %add7 = or disjoint i64 %add, 1 %arrayidx8 = getelementptr inbounds i32, ptr %A, i64 %add7 %0 = load i32, ptr %arrayidx8, align 4 %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1 @@ -142,7 +142,7 @@ for.body3: ; preds = %for.cond1.preheader %mul = shl nsw i64 %i.03, 1 %mul4 = shl nsw i64 %j.02, 2 %sub = sub nsw i64 %mul, %mul4 - %add5 = or i64 %sub, 1 + %add5 = or disjoint i64 %sub, 1 %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add5 store i32 %conv, ptr %arrayidx, align 4 %mul5 = mul nsw i64 %i.03, 6 @@ -384,7 +384,7 @@ for.body3: ; preds = %for.body3.preheader %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %arrayidx.sum store i32 %conv, ptr %arrayidx5, align 4 %mul6 = mul nsw i64 %j.03, 6 - %add7 = or i64 %mul6, 1 + %add7 = or disjoint i64 %mul6, 1 %mul7 = shl nsw i64 %i.06, 3 %1 = mul nsw i64 %mul7, %n %arrayidx8.sum = add i64 %1, %add7 @@ -464,7 +464,7 @@ for.body3: ; preds = %for.body3.preheader store i32 %7, ptr %arrayidx6, align 4 %8 = trunc i64 %indvars.iv to i32 %mul7 = mul nsw i32 %8, 6 - %add7 = or i32 %mul7, 1 + %add7 = or disjoint i32 %mul7, 1 %idxprom8 = sext i32 %add7 to i64 %9 = trunc i64 %indvars.iv8 to i32 %mul9 = shl nsw i32 %9, 3 @@ -548,7 +548,7 @@ for.body3: ; preds = %for.body3.preheader %4 = trunc i64 %indvars.iv to i32 %mul8 = mul nsw i32 %4, 6 %add9 = add nsw i32 %mul7, %mul8 - %add10 = or i32 %add9, 1 + %add10 = or disjoint i32 %add9, 1 %idxprom11 = sext i32 %add10 to i64 %arrayidx12 = getelementptr inbounds i32, ptr %A, i64 %idxprom11 %5 = load i32, ptr %arrayidx12, align 4 @@ -627,7 +627,7 @@ for.body3: ; preds = %for.body3.preheader store i32 %7, ptr %arrayidx6, align 4 %8 = trunc i64 %indvars.iv to i32 %mul7 = mul i32 %8, 6 - %add7 = or i32 %mul7, 1 + %add7 = or disjoint i32 %mul7, 1 %idxprom8 = zext i32 %add7 to i64 %9 = trunc i64 %indvars.iv8 to i32 %mul9 = shl i32 %9, 3 diff --git a/llvm/test/Analysis/LoopAccessAnalysis/stride-access-dependence.ll b/llvm/test/Analysis/LoopAccessAnalysis/stride-access-dependence.ll index 145117a..bfdd15f 100644 --- a/llvm/test/Analysis/LoopAccessAnalysis/stride-access-dependence.ll +++ b/llvm/test/Analysis/LoopAccessAnalysis/stride-access-dependence.ll @@ -65,7 +65,7 @@ for.body: ; preds = %entry, %for.body %arrayidx = getelementptr inbounds i32, ptr %A, i64 %indvars.iv %0 = trunc i64 %indvars.iv to i32 store i32 %0, ptr %arrayidx, align 4 - %1 = or i64 %indvars.iv, 3 + %1 = or disjoint i64 %indvars.iv, 3 %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %1 %2 = load i32, ptr %arrayidx2, align 4 %add3 = add nsw i32 %2, %sum.013 @@ -99,7 +99,7 @@ for.body: ; preds = %entry, %for.body %arrayidx = getelementptr inbounds i32, ptr %A, i64 %indvars.iv %0 = trunc i64 %indvars.iv to i32 store i32 %0, ptr %arrayidx, align 4 - %1 = or i64 %indvars.iv, 1 + %1 = or disjoint i64 %indvars.iv, 1 %arrayidx3 = getelementptr inbounds i32, ptr %A, i64 %1 %2 = trunc i64 %1 to i32 store i32 %2, ptr %arrayidx3, align 4 @@ -213,7 +213,7 @@ for.body: ; preds = %entry, %for.body %arrayidx = getelementptr inbounds i32, ptr %A, i64 %indvars.iv %0 = trunc i64 %indvars.iv to i32 store i32 %0, ptr %arrayidx, align 4 - %1 = or i64 %indvars.iv, 1 + %1 = or disjoint i64 %indvars.iv, 1 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 2 %arrayidx3 = getelementptr inbounds i32, ptr %A, i64 %indvars.iv.next %2 = trunc i64 %1 to i32 @@ -328,7 +328,7 @@ for.body: ; preds = %entry, %for.body %arrayidx = getelementptr inbounds i32, ptr %A, i64 %indvars.iv %0 = trunc i64 %indvars.iv to i32 store i32 %0, ptr %arrayidx, align 4 - %1 = or i64 %indvars.iv, 1 + %1 = or disjoint i64 %indvars.iv, 1 %arrayidx2 = getelementptr inbounds i32, ptr %add.ptr, i64 %indvars.iv %2 = trunc i64 %1 to i32 store i32 %2, ptr %arrayidx2, align 4 @@ -525,7 +525,7 @@ for.body: ; preds = %entry, %for.body %0 = trunc i64 %indvars.iv to i32 %arrayidx2 = getelementptr inbounds i32, ptr %incdec.ptr, i64 %indvars.iv store i32 %0, ptr %arrayidx2, align 4 - %1 = or i64 %indvars.iv, 1 + %1 = or disjoint i64 %indvars.iv, 1 %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %1 %2 = trunc i64 %1 to i32 store i32 %2, ptr %arrayidx5, align 4 diff --git a/llvm/test/Analysis/ScalarEvolution/nsw-offset-assume.ll b/llvm/test/Analysis/ScalarEvolution/nsw-offset-assume.ll index bc308f2..60809fc 100644 --- a/llvm/test/Analysis/ScalarEvolution/nsw-offset-assume.ll +++ b/llvm/test/Analysis/ScalarEvolution/nsw-offset-assume.ll @@ -25,7 +25,7 @@ define void @foo(i32 %no, ptr nocapture %d, ptr nocapture %q) nounwind { ; CHECK-NEXT: --> {0,+,2}<nuw><nsw><%bb> U: [0,2147483645) S: [0,2147483645) Exits: (2 * ((1 + (zext i32 (-2 + (2 * (%no /u 2))<nuw>) to i64))<nuw><nsw> /u 2))<nuw><nsw> LoopDispositions: { %bb: Computable } ; CHECK-NEXT: %5 = getelementptr inbounds double, ptr %q, i64 %4 ; CHECK-NEXT: --> {%q,+,16}<nuw><%bb> U: full-set S: full-set Exits: ((16 * ((1 + (zext i32 (-2 + (2 * (%no /u 2))<nuw>) to i64))<nuw><nsw> /u 2))<nuw><nsw> + %q) LoopDispositions: { %bb: Computable } -; CHECK-NEXT: %7 = or i32 %i.01, 1 +; CHECK-NEXT: %7 = or disjoint i32 %i.01, 1 ; CHECK-NEXT: --> {1,+,2}<nuw><nsw><%bb> U: [1,2147483646) S: [1,2147483646) Exits: (1 + (2 * ((-1 + (2 * (%no /u 2))<nuw>) /u 2))<nuw>)<nuw><nsw> LoopDispositions: { %bb: Computable } ; CHECK-NEXT: %8 = sext i32 %7 to i64 ; CHECK-NEXT: --> {1,+,2}<nuw><nsw><%bb> U: [1,2147483646) S: [1,2147483646) Exits: (1 + (2 * ((1 + (zext i32 (-2 + (2 * (%no /u 2))<nuw>) to i64))<nuw><nsw> /u 2))<nuw><nsw>)<nuw><nsw> LoopDispositions: { %bb: Computable } @@ -71,7 +71,7 @@ bb: ; preds = %bb.nph, %bb1 %4 = sext i32 %i.01 to i64 ; <i64> [#uses=1] %5 = getelementptr inbounds double, ptr %q, i64 %4 ; <ptr> [#uses=1] %6 = load double, ptr %5, align 8 ; <double> [#uses=1] - %7 = or i32 %i.01, 1 ; <i32> [#uses=1] + %7 = or disjoint i32 %i.01, 1 ; <i32> [#uses=1] %8 = sext i32 %7 to i64 ; <i64> [#uses=1] diff --git a/llvm/test/Analysis/ScalarEvolution/nsw-offset.ll b/llvm/test/Analysis/ScalarEvolution/nsw-offset.ll index 51b8db6..fab408e 100644 --- a/llvm/test/Analysis/ScalarEvolution/nsw-offset.ll +++ b/llvm/test/Analysis/ScalarEvolution/nsw-offset.ll @@ -22,7 +22,7 @@ define void @foo(i32 %no, ptr nocapture %d, ptr nocapture %q) nounwind { ; CHECK-NEXT: --> {0,+,2}<nuw><nsw><%bb> U: [0,2147483645) S: [0,2147483645) Exits: (2 * ((1 + (zext i32 (-2 + (2 * (%no /u 2))<nuw>) to i64))<nuw><nsw> /u 2))<nuw><nsw> LoopDispositions: { %bb: Computable } ; CHECK-NEXT: %5 = getelementptr inbounds double, ptr %q, i64 %4 ; CHECK-NEXT: --> {%q,+,16}<nuw><%bb> U: full-set S: full-set Exits: ((16 * ((1 + (zext i32 (-2 + (2 * (%no /u 2))<nuw>) to i64))<nuw><nsw> /u 2))<nuw><nsw> + %q) LoopDispositions: { %bb: Computable } -; CHECK-NEXT: %7 = or i32 %i.01, 1 +; CHECK-NEXT: %7 = or disjoint i32 %i.01, 1 ; CHECK-NEXT: --> {1,+,2}<nuw><nsw><%bb> U: [1,2147483646) S: [1,2147483646) Exits: (1 + (2 * ((-1 + (2 * (%no /u 2))<nuw>) /u 2))<nuw>)<nuw><nsw> LoopDispositions: { %bb: Computable } ; CHECK-NEXT: %8 = sext i32 %7 to i64 ; CHECK-NEXT: --> {1,+,2}<nuw><nsw><%bb> U: [1,2147483646) S: [1,2147483646) Exits: (1 + (2 * ((1 + (zext i32 (-2 + (2 * (%no /u 2))<nuw>) to i64))<nuw><nsw> /u 2))<nuw><nsw>)<nuw><nsw> LoopDispositions: { %bb: Computable } @@ -67,7 +67,7 @@ bb: ; preds = %bb.nph, %bb1 %4 = sext i32 %i.01 to i64 ; <i64> [#uses=1] %5 = getelementptr inbounds double, ptr %q, i64 %4 ; <ptr> [#uses=1] %6 = load double, ptr %5, align 8 ; <double> [#uses=1] - %7 = or i32 %i.01, 1 ; <i32> [#uses=1] + %7 = or disjoint i32 %i.01, 1 ; <i32> [#uses=1] %8 = sext i32 %7 to i64 ; <i64> [#uses=1] diff --git a/llvm/test/Analysis/ScalarEvolution/sext-mul.ll b/llvm/test/Analysis/ScalarEvolution/sext-mul.ll index a31789c..2340d5c 100644 --- a/llvm/test/Analysis/ScalarEvolution/sext-mul.ll +++ b/llvm/test/Analysis/ScalarEvolution/sext-mul.ll @@ -18,7 +18,7 @@ define void @foo(ptr nocapture %arg, i32 %arg1, i32 %arg2) { ; CHECK-NEXT: --> %tmp12 U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %bb7: Variant } ; CHECK-NEXT: %tmp13 = sub nsw i32 %tmp12, %arg1 ; CHECK-NEXT: --> ((-1 * %arg1) + %tmp12) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %bb7: Variant } -; CHECK-NEXT: %tmp14 = or i64 %tmp10, 1 +; CHECK-NEXT: %tmp14 = or disjoint i64 %tmp10, 1 ; CHECK-NEXT: --> (1 + (sext i32 {0,+,2}<%bb7> to i64))<nuw><nsw> U: [1,0) S: [-2147483647,2147483648) Exits: (1 + (sext i32 (-2 + (2 * %arg2)) to i64))<nuw><nsw> LoopDispositions: { %bb7: Computable } ; CHECK-NEXT: %tmp15 = getelementptr inbounds i32, ptr %arg, i64 %tmp14 ; CHECK-NEXT: --> (4 + (4 * (sext i32 {0,+,2}<%bb7> to i64))<nsw> + %arg) U: full-set S: full-set Exits: (4 + (4 * (sext i32 (-2 + (2 * %arg2)) to i64))<nsw> + %arg) LoopDispositions: { %bb7: Computable } @@ -58,7 +58,7 @@ bb7: ; preds = %bb7, %bb3 %tmp12 = load i32, ptr %tmp11, align 4 %tmp13 = sub nsw i32 %tmp12, %arg1 store i32 %tmp13, ptr %tmp11, align 4 - %tmp14 = or i64 %tmp10, 1 + %tmp14 = or disjoint i64 %tmp10, 1 %tmp15 = getelementptr inbounds i32, ptr %arg, i64 %tmp14 %tmp16 = load i32, ptr %tmp15, align 4 %tmp17 = mul nsw i32 %tmp16, %arg1 @@ -85,7 +85,7 @@ define void @goo(ptr nocapture %arg3, i32 %arg4, i32 %arg5) { ; CHECK-NEXT: --> %t12 U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %bb7: Variant } ; CHECK-NEXT: %t13 = sub nsw i32 %t12, %arg4 ; CHECK-NEXT: --> ((-1 * %arg4) + %t12) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %bb7: Variant } -; CHECK-NEXT: %t14 = or i128 %t10, 1 +; CHECK-NEXT: %t14 = or disjoint i128 %t10, 1 ; CHECK-NEXT: --> (1 + (sext i127 {0,+,633825300114114700748351602688}<%bb7> to i128))<nuw><nsw> U: [1,-633825300114114700748351602686) S: [-85070591730234615865843651857942052863,85070591096409315751728951109590450178) Exits: (1 + (sext i127 (-633825300114114700748351602688 + (633825300114114700748351602688 * (zext i32 %arg5 to i127))) to i128))<nuw><nsw> LoopDispositions: { %bb7: Computable } ; CHECK-NEXT: %t15 = getelementptr inbounds i32, ptr %arg3, i128 %t14 ; CHECK-NEXT: --> (4 + %arg3)<nuw> U: [4,0) S: [4,0) Exits: (4 + %arg3)<nuw> LoopDispositions: { %bb7: Invariant } @@ -125,7 +125,7 @@ bb7: ; preds = %bb7, %bb3 %t12 = load i32, ptr %t11, align 4 %t13 = sub nsw i32 %t12, %arg4 store i32 %t13, ptr %t11, align 4 - %t14 = or i128 %t10, 1 + %t14 = or disjoint i128 %t10, 1 %t15 = getelementptr inbounds i32, ptr %arg3, i128 %t14 %t16 = load i32, ptr %t15, align 4 %t17 = mul nsw i32 %t16, %arg4 |