[llvm] 564f5ee - [InstCombine] add test for gep (select),... (PR45084); NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 7 07:21:05 PST 2020


Author: Sanjay Patel
Date: 2020-03-07T10:00:31-05:00
New Revision: 564f5eed1a3d0c4077e0b562beef2ad29fd254f4

URL: https://github.com/llvm/llvm-project/commit/564f5eed1a3d0c4077e0b562beef2ad29fd254f4
DIFF: https://github.com/llvm/llvm-project/commit/564f5eed1a3d0c4077e0b562beef2ad29fd254f4.diff

LOG: [InstCombine] add test for gep (select),... (PR45084); NFC

Added: 
    

Modified: 
    llvm/test/Transforms/InstCombine/getelementptr.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstCombine/getelementptr.ll b/llvm/test/Transforms/InstCombine/getelementptr.ll
index 95e0c3a2b40c..0ecf6fe32745 100644
--- a/llvm/test/Transforms/InstCombine/getelementptr.ll
+++ b/llvm/test/Transforms/InstCombine/getelementptr.ll
@@ -1208,3 +1208,19 @@ define i32* @test_gep_inbounds_of_gep(i32* %base) {
   %ptr2 = getelementptr inbounds i32, i32* %ptr1, i64 4
   ret i32* %ptr2
 }
+
+%struct.f = type { i32 }
+
+ at g0 = internal unnamed_addr constant %struct.f zeroinitializer, align 4
+ at g1 = internal unnamed_addr constant %struct.f { i32 -1 }, align 4
+
+define i32* @PR45084(i1 %cond) {
+; CHECK-LABEL: @PR45084(
+; CHECK-NEXT:    [[SEL:%.*]] = select i1 [[COND:%.*]], %struct.f* @g0, %struct.f* @g1
+; CHECK-NEXT:    [[GEP:%.*]] = getelementptr inbounds [[STRUCT_F:%.*]], %struct.f* [[SEL]], i64 0, i32 0
+; CHECK-NEXT:    ret i32* [[GEP]]
+;
+  %sel = select i1 %cond, %struct.f* @g0, %struct.f* @g1
+  %gep = getelementptr inbounds %struct.f, %struct.f* %sel, i64 0, i32 0
+  ret i32* %gep
+}


        


More information about the llvm-commits mailing list