[llvm] 466c829 - [MemCpyOpt] Add test for incorrectly hoisted store (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 9 11:53:24 PDT 2020


Author: Nikita Popov
Date: 2020-10-09T20:52:08+02:00
New Revision: 466c8296f20f5940fc282b228e28408b7c4d7d9b

URL: https://github.com/llvm/llvm-project/commit/466c8296f20f5940fc282b228e28408b7c4d7d9b
DIFF: https://github.com/llvm/llvm-project/commit/466c8296f20f5940fc282b228e28408b7c4d7d9b.diff

LOG: [MemCpyOpt] Add test for incorrectly hoisted store (NFC)

Added: 
    

Modified: 
    llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll b/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll
index 777ba51f3827..6cffce50eb80 100644
--- a/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll
+++ b/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll
@@ -144,3 +144,22 @@ define void @noaliasaddrproducer(%S* %src, %S* noalias %dst, i32* noalias %dstid
   store %S %1, %S* %dst2
   ret void
 }
+
+define void @throwing_call(%S* noalias %src, %S* %dst) {
+; CHECK-LABEL: @throwing_call(
+; CHECK-NEXT:    [[TMP1:%.*]] = bitcast %S* [[SRC:%.*]] to i8*
+; CHECK-NEXT:    [[TMP2:%.*]] = bitcast %S* [[DST:%.*]] to i8*
+; CHECK-NEXT:    [[TMP3:%.*]] = bitcast %S* [[SRC]] to i8*
+; CHECK-NEXT:    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 [[TMP2]], i8* align 8 [[TMP3]], i64 16, i1 false)
+; CHECK-NEXT:    call void @llvm.memset.p0i8.i64(i8* align 8 [[TMP1]], i8 0, i64 16, i1 false)
+; CHECK-NEXT:    call void @call() [[ATTR2:#.*]]
+; CHECK-NEXT:    ret void
+;
+  %1 = load %S, %S* %src
+  store %S zeroinitializer, %S* %src
+  call void @call() readnone
+  store %S %1, %S* %dst
+  ret void
+}
+
+declare void @call()


        


More information about the llvm-commits mailing list