[llvm] 1e18a0f - [MemCpyOpt] Precommit tests for PR210667 (NFC) (#210708)

via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 20 05:58:56 PDT 2026


Author: Antonio Frighetto
Date: 2026-07-20T14:58:51+02:00
New Revision: 1e18a0f4d758ff796acbb3987c2d01c02bb223a1

URL: https://github.com/llvm/llvm-project/commit/1e18a0f4d758ff796acbb3987c2d01c02bb223a1
DIFF: https://github.com/llvm/llvm-project/commit/1e18a0f4d758ff796acbb3987c2d01c02bb223a1.diff

LOG: [MemCpyOpt] Precommit tests for PR210667 (NFC) (#210708)

Added: 
    

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

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/MemCpyOpt/callslot.ll b/llvm/test/Transforms/MemCpyOpt/callslot.ll
index 6c999c57f9187..8181f312e5c77 100644
--- a/llvm/test/Transforms/MemCpyOpt/callslot.ll
+++ b/llvm/test/Transforms/MemCpyOpt/callslot.ll
@@ -234,6 +234,24 @@ define void @dest_not_writable(ptr noalias dereferenceable(128) %dst) {
   ret void
 }
 
+; Ensure call slot optimization does not attempt to lower the existing destination
+; alloca's alignment.
+define void @dest_alignment(ptr %src) {
+; CHECK-LABEL: @dest_alignment(
+; CHECK-NEXT:    [[SRC_2:%.*]] = alloca [24 x i8], align 4
+; CHECK-NEXT:    [[DST:%.*]] = alloca [24 x i8], align 4
+; CHECK-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 16 [[DST]], ptr [[SRC:%.*]], i64 24, i1 false)
+; CHECK-NEXT:    call void @accept_ptr(ptr [[DST]])
+; CHECK-NEXT:    ret void
+;
+  %src.2 = alloca [24 x i8], align 4
+  %dst = alloca [24 x i8], align 16
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %dst, ptr %src, i64 24, i1 false)
+  call void @accept_ptr(ptr %src.2)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dst, ptr %src.2, i64 24, i1 false)
+  ret void
+}
+
 declare void @may_throw()
 declare void @accept_ptr(ptr)
 declare void @llvm.memcpy.p0.p0.i64(ptr, ptr, i64, i1)


        


More information about the llvm-commits mailing list