diff options
Diffstat (limited to 'test/Analysis/BasicAA/fallback-mayalias.ll')
-rw-r--r-- | test/Analysis/BasicAA/fallback-mayalias.ll | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/Analysis/BasicAA/fallback-mayalias.ll b/test/Analysis/BasicAA/fallback-mayalias.ll new file mode 100644 index 0000000000000..a1e4b12d20ade --- /dev/null +++ b/test/Analysis/BasicAA/fallback-mayalias.ll @@ -0,0 +1,23 @@ +; RUN: opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output < %s 2>&1 | FileCheck %s + +; Check that BasicAA falls back to MayAlias (instead of PartialAlias) when none +; of its little tricks are applicable. + +; CHECK: MayAlias: float* %arrayidxA, float* %arrayidxB + +define void @fallback_mayalias(float* noalias nocapture %C, i64 %i, i64 %j) local_unnamed_addr { +entry: + %shl = shl i64 %i, 3 + %mul = shl nsw i64 %j, 4 + %addA = add nsw i64 %mul, %shl + %orB = or i64 %shl, 1 + %addB = add nsw i64 %mul, %orB + + %arrayidxA = getelementptr inbounds float, float* %C, i64 %addA + store float undef, float* %arrayidxA, align 4 + + %arrayidxB = getelementptr inbounds float, float* %C, i64 %addB + store float undef, float* %arrayidxB, align 4 + + ret void +} |