Fix PR18800. llvm intrinsic memcpy takes 5 arguments void @llvm.memcpy.p0i8.p0i8...
authorKarthik Bhat <kv.bhat@samsung.com>
Thu, 13 Mar 2014 04:50:29 +0000 (04:50 +0000)
committerKarthik Bhat <kv.bhat@samsung.com>
Thu, 13 Mar 2014 04:50:29 +0000 (04:50 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203750 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll
test/Transforms/ScalarRepl/vector_memcpy.ll

index 3510dfc24d9a15ff37d2aa294930f57110ae63d1..8ac1d2570a1cca99808eef2718d249a6f7e6eed8 100644 (file)
@@ -1,6 +1,6 @@
 ; PR1226
 ; RUN: opt < %s -scalarrepl -S | \
-; RUN:   not grep "call void @llvm.memcpy.i32"
+; RUN:   not grep "call void @llvm.memcpy.p0i8.p0i8.i32"
 ; RUN: opt < %s -scalarrepl -S | grep getelementptr
 ; END.
 
@@ -14,10 +14,10 @@ entry:
        %L = alloca %struct.foo, align 2                ; <%struct.foo*> [#uses=1]
        %L2 = getelementptr %struct.foo* %L, i32 0, i32 0               ; <i8*> [#uses=2]
        %tmp13 = getelementptr %struct.foo* %P, i32 0, i32 0            ; <i8*> [#uses=1]
-       call void @llvm.memcpy.i32( i8* %L2, i8* %tmp13, i32 2, i32 1 )
+       call void @llvm.memcpy.p0i8.p0i8.i32( i8* %L2, i8* %tmp13, i32 2, i32 1, i1 false)
        %tmp5 = load i8* %L2            ; <i8> [#uses=1]
        %tmp56 = sext i8 %tmp5 to i32           ; <i32> [#uses=1]
        ret i32 %tmp56
 }
 
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
+declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1)
index 33e8034f573403bb9fc3d70c0c6d3983fb9d9f4d..dfba9e2c807410ccdd60621a538bb2f3c26e9ef7 100644 (file)
@@ -9,8 +9,7 @@ define <16 x float> @foo(<16 x float> %A) nounwind {
        store <16 x float> %A, <16 x float>* %tmp
        %s = bitcast <16 x float>* %tmp to i8*
        %s2 = bitcast <16 x float>* %tmp2 to i8*
-       call void @llvm.memcpy.i64(i8* %s2, i8* %s, i64 64, i32 16)
-       
+       call void @llvm.memcpy.p0i8.p0i8.i64(i8* %s2, i8* %s, i64 64, i32 16, i1 false)
        %R = load <16 x float>* %tmp2
        ret <16 x float> %R
 }
@@ -19,12 +18,11 @@ define <16 x float> @foo2(<16 x float> %A) nounwind {
        %tmp2 = alloca <16 x float>, align 16
 
        %s2 = bitcast <16 x float>* %tmp2 to i8*
-       call void @llvm.memset.i64(i8* %s2, i8 0, i64 64, i32 16)
+       call void @llvm.memset.p0i8.i64(i8* %s2, i8 0, i64 64, i32 16, i1 false)
        
        %R = load <16 x float>* %tmp2
        ret <16 x float> %R
 }
 
-
-declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind
-declare void @llvm.memset.i64(i8* nocapture, i8, i64, i32) nounwind
+declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind
+declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind