[llvm] 00686ab - [ConstantFold] Add additional load from uniform value tests (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 5 03:30:55 PST 2022


Author: Nikita Popov
Date: 2022-01-05T12:30:46+01:00
New Revision: 00686ab4afd967fb3c10127a48096d72e4f218b5

URL: https://github.com/llvm/llvm-project/commit/00686ab4afd967fb3c10127a48096d72e4f218b5
DIFF: https://github.com/llvm/llvm-project/commit/00686ab4afd967fb3c10127a48096d72e4f218b5.diff

LOG: [ConstantFold] Add additional load from uniform value tests (NFC)

Added: 
    

Modified: 
    llvm/test/Transforms/InstSimplify/ConstProp/loads.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstSimplify/ConstProp/loads.ll b/llvm/test/Transforms/InstSimplify/ConstProp/loads.ll
index a825ff66377fa..3f5ea96df04e9 100644
--- a/llvm/test/Transforms/InstSimplify/ConstProp/loads.ll
+++ b/llvm/test/Transforms/InstSimplify/ConstProp/loads.ll
@@ -253,13 +253,23 @@ define i64 @test_array_of_zero_size_array() {
   ret i64 %v
 }
 
- at g10 = constant {i128} {i128 undef}
+ at g_undef = constant { i128 } undef
 
 define i32* @test_undef_aggregate() {
 ; CHECK-LABEL: @test_undef_aggregate(
 ; CHECK-NEXT:    ret i32* undef
 ;
-  %v = load i32*, i32** bitcast ({i128}* @g10 to i32**)
+  %v = load i32*, i32** bitcast ({i128}* @g_undef to i32**)
+  ret i32* %v
+}
+
+ at g_poison = constant { i128 } poison
+
+define i32* @test_poison_aggregate() {
+; CHECK-LABEL: @test_poison_aggregate(
+; CHECK-NEXT:    ret i32* undef
+;
+  %v = load i32*, i32** bitcast ({i128}* @g_poison to i32**)
   ret i32* %v
 }
 
@@ -293,3 +303,16 @@ define x86_mmx @load_mmx() {
   %temp = load x86_mmx, x86_mmx* bitcast (i64* getelementptr ([2 x i64], [2 x i64]* @m64, i64 0, i64 ptrtoint (i32* @idx to i64)) to x86_mmx*)
   ret x86_mmx %temp
 }
+
+ at g_offset = external global i64
+
+ at g_neg_one_vec = constant <4 x i8> <i8 -1, i8 -1, i8 -1, i8 -1>
+
+define i8 @load_neg_one_at_unknown_offset() {
+; CHECK-LABEL: @load_neg_one_at_unknown_offset(
+; CHECK-NEXT:    [[V:%.*]] = load i8, i8* getelementptr (<4 x i8>, <4 x i8>* @g_neg_one_vec, i64 0, i64 ptrtoint (i64* @g_offset to i64)), align 1
+; CHECK-NEXT:    ret i8 [[V]]
+;
+  %v = load i8, i8* getelementptr (<4 x i8>, <4 x i8>* @g_neg_one_vec, i64 0, i64 ptrtoint (i64* @g_offset to i64))
+  ret i8 %v
+}


        


More information about the llvm-commits mailing list