From d2cd73f6a5103f5de221a67410e35e6bee211fa3 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Mon, 15 Oct 2012 10:24:43 +0000 Subject: Update the memcpy rewriting to fully support widened int rewriting. This includes extracting ints for copying elsewhere and inserting ints when copying into the alloca. This should fix the CanSROA assertion coming out of Clang's regression test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165931 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/SROA/basictest.ll | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'test/Transforms') diff --git a/test/Transforms/SROA/basictest.ll b/test/Transforms/SROA/basictest.ll index b33ffa65f6..644fda167d 100644 --- a/test/Transforms/SROA/basictest.ll +++ b/test/Transforms/SROA/basictest.ll @@ -1046,8 +1046,12 @@ entry: ; Or a memset of the whole thing. call void @llvm.memset.p0i8.i64(i8* %0, i8 0, i64 8, i32 1, i1 false) - ; Store to the high 32-bits... + ; Write to the high 32-bits with a memcpy. %X.sroa.0.4.raw_idx4.i = getelementptr inbounds i8* %0, i32 4 + %d.raw = bitcast double* %d to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %X.sroa.0.4.raw_idx4.i, i8* %d.raw, i32 4, i32 1, i1 false) + + ; Store to the high 32-bits... %X.sroa.0.4.cast5.i = bitcast i8* %X.sroa.0.4.raw_idx4.i to i32* store i32 1072693248, i32* %X.sroa.0.4.cast5.i, align 4 -- cgit v1.2.3-70-g09d2