[llvm] [ValueTracking] Analyze `Select` in `isKnownNonEqual`. (PR #68427)
Mikhail Gudim via llvm-commits
llvm-commits at lists.llvm.org
Sun Oct 8 09:54:40 PDT 2023
================
@@ -0,0 +1,33 @@
+; RUN: opt < %s -aa-pipeline=basic-aa -passes=aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s
+ at G = global [10 x i32] zeroinitializer, align 4
+
+; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) uwtable
+define void @select_in_gep1(i1 %c, i64 noundef %x) {
+entry:
+; CHECK: Function: select_in_gep1
+; CHECK: NoAlias: i32* %arrayidx1, i32* %arrayidx2
+ %add1_ = add nsw i64 %x, 1
+ %add2_ = add nsw i64 %x, 2
+ %select_ = select i1 %c, i64 %add1_, i64 %add2_
+ %arrayidx1 = getelementptr inbounds [10 x i32], ptr @G, i64 0, i64 %select_
+ store i32 42, ptr %arrayidx1, align 4
+ %arrayidx2 = getelementptr inbounds [10 x i32], ptr @G, i64 0, i64 %x
+ store i32 43, ptr %arrayidx2, align 4
+ ret void
+}
----------------
mgudim wrote:
Added more tests.
https://github.com/llvm/llvm-project/pull/68427
More information about the llvm-commits
mailing list