[llvm] 0e76818 - [ValueTracking] Test isKnownNonZero() range metadata with vector (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 19 07:50:22 PDT 2024


Author: Nikita Popov
Date: 2024-03-19T15:50:13+01:00
New Revision: 0e7681867242ccf9138e7e6a9c2d9925b6ee1e49

URL: https://github.com/llvm/llvm-project/commit/0e7681867242ccf9138e7e6a9c2d9925b6ee1e49
DIFF: https://github.com/llvm/llvm-project/commit/0e7681867242ccf9138e7e6a9c2d9925b6ee1e49.diff

LOG: [ValueTracking] Test isKnownNonZero() range metadata with vector (NFC)

Added: 
    

Modified: 
    llvm/test/Analysis/ValueTracking/known-non-zero.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Analysis/ValueTracking/known-non-zero.ll b/llvm/test/Analysis/ValueTracking/known-non-zero.ll
index d804fe96649039..f514968715c23c 100644
--- a/llvm/test/Analysis/ValueTracking/known-non-zero.ll
+++ b/llvm/test/Analysis/ValueTracking/known-non-zero.ll
@@ -1292,4 +1292,18 @@ true:
 false:
   ret i1 %ne
 }
+
+define <2 x i1> @range_metadata_vec(ptr %p, <2 x i32> %x) {
+; CHECK-LABEL: @range_metadata_vec(
+; CHECK-NEXT:    [[Z:%.*]] = load <2 x i32>, ptr [[P:%.*]], align 8, !range [[RNG0:![0-9]+]]
+; CHECK-NEXT:    [[OR:%.*]] = or <2 x i32> [[Z]], [[X:%.*]]
+; CHECK-NEXT:    [[CMP0:%.*]] = icmp ne <2 x i32> [[OR]], zeroinitializer
+; CHECK-NEXT:    ret <2 x i1> [[CMP0]]
+;
+  %v = load <2 x i32>, ptr %p, !range !{i32 1, i32 100}
+  %or = or <2 x i32> %v, %x
+  %cmp = icmp ne <2 x i32> %or, zeroinitializer
+  ret <2 x i1> %cmp
+}
+
 declare i32 @llvm.experimental.get.vector.length.i32(i32, i32, i1)


        


More information about the llvm-commits mailing list