[llvm] 31c1842 - [DSE] Add test with sret argument (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 26 05:25:39 PST 2022


Author: Nikita Popov
Date: 2022-01-26T14:25:31+01:00
New Revision: 31c1842a7b5ef4897fe3cbec21d261dae6ed5a74

URL: https://github.com/llvm/llvm-project/commit/31c1842a7b5ef4897fe3cbec21d261dae6ed5a74
DIFF: https://github.com/llvm/llvm-project/commit/31c1842a7b5ef4897fe3cbec21d261dae6ed5a74.diff

LOG: [DSE] Add test with sret argument (NFC)

Added: 
    

Modified: 
    llvm/test/Transforms/DeadStoreElimination/simple.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/DeadStoreElimination/simple.ll b/llvm/test/Transforms/DeadStoreElimination/simple.ll
index 14716ee9b0e6a..88197ee2cdbd6 100644
--- a/llvm/test/Transforms/DeadStoreElimination/simple.ll
+++ b/llvm/test/Transforms/DeadStoreElimination/simple.ll
@@ -532,6 +532,20 @@ define void @test34(i32* noalias %p) {
   store i32 0, i32* %p
   ret void
 }
+; Same as previous case, but with an sret argument.
+; TODO: The first store could be eliminated if sret is not visible on unwind.
+define void @test34_sret(i32* noalias sret(i32) %p) {
+; CHECK-LABEL: @test34_sret(
+; CHECK-NEXT:    store i32 1, i32* [[P:%.*]], align 4
+; CHECK-NEXT:    call void @unknown_func()
+; CHECK-NEXT:    store i32 0, i32* [[P]], align 4
+; CHECK-NEXT:    ret void
+;
+  store i32 1, i32* %p
+  call void @unknown_func()
+  store i32 0, i32* %p
+  ret void
+}
 
 ; Remove redundant store even with an unwinding function in the same block
 define void @test35(i32* noalias %p) {


        


More information about the llvm-commits mailing list