diff options
Diffstat (limited to 'test/Transforms/ScalarRepl')
11 files changed, 103 insertions, 125 deletions
diff --git a/test/Transforms/ScalarRepl/2007-05-24-LargeAggregate.ll b/test/Transforms/ScalarRepl/2007-05-24-LargeAggregate.ll deleted file mode 100644 index e67b610..0000000 --- a/test/Transforms/ScalarRepl/2007-05-24-LargeAggregate.ll +++ /dev/null @@ -1,27 +0,0 @@ -; RUN: opt < %s -scalarrepl -S | grep {alloca.*client_t} -; PR1446 -target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64" -target triple = "i686-pc-linux-gnu" - - %struct.clientSnapshot_t = type { i32, [32 x i8], %struct.playerState_t, i32, i32, i32, i32, i32 } - %struct.client_t = type { i32, [1024 x i8], [64 x [1024 x i8]], i32, i32, i32, i32, i32, i32, %struct.usercmd_t, i32, i32, [1024 x i8], %struct.sharedEntity_t*, [32 x i8], [64 x i8], i32, i32, i32, i32, i32, i32, [8 x i8*], [8 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, [32 x %struct.clientSnapshot_t], i32, i32, i32, i32, i32, %struct.netchan_t, %struct.netchan_buffer_t*, %struct.netchan_buffer_t**, i32, [1025 x i32] } - %struct.entityShared_t = type { %struct.entityState_t, i32, i32, i32, i32, i32, [3 x float], [3 x float], i32, [3 x float], [3 x float], [3 x float], [3 x float], i32 } - %struct.entityState_t = type { i32, i32, i32, %struct.trajectory_t, %struct.trajectory_t, i32, i32, [3 x float], [3 x float], [3 x float], [3 x float], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } - %struct.msg_t = type { i32, i32, i32, i8*, i32, i32, i32, i32 } - %struct.netadr_t = type { i32, [4 x i8], [10 x i8], i16 } - %struct.netchan_buffer_t = type { %struct.msg_t, [16384 x i8], %struct.netchan_buffer_t* } - %struct.netchan_t = type { i32, i32, %struct.netadr_t, i32, i32, i32, i32, i32, [16384 x i8], i32, i32, i32, [16384 x i8] } - %struct.playerState_t = type { i32, i32, i32, i32, i32, [3 x float], [3 x float], i32, i32, i32, [3 x i32], i32, i32, i32, i32, i32, i32, [3 x float], i32, i32, [2 x i32], [2 x i32], i32, i32, i32, i32, i32, i32, [3 x float], i32, i32, i32, i32, i32, [16 x i32], [16 x i32], [16 x i32], [16 x i32], i32, i32, i32, i32, i32, i32, i32 } - %struct.sharedEntity_t = type { %struct.entityState_t, %struct.entityShared_t } - %struct.trajectory_t = type { i32, i32, i32, [3 x float], [3 x float] } - %struct.usercmd_t = type { i32, [3 x i32], i32, i8, i8, i8, i8 } - -declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) - -define void @SV_DirectConnect(i64 %from.0.0, i64 %from.0.1, i32 %from.1) { -entry: - %temp = alloca %struct.client_t, align 16 ; <%struct.client_t*> [#uses=1] - %temp586 = bitcast %struct.client_t* %temp to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32( i8* null, i8* %temp586, i32 121596, i32 0 ) - unreachable -} diff --git a/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll b/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll index f1b8b80..cf96c4c 100644 --- a/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll +++ b/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll @@ -3,21 +3,22 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64" target triple = "i686-apple-darwin8" - %struct.LongestMember = type { i8, i32 } - %struct.MyString = type { i32 } - %struct.UnionType = type { %struct.LongestMember } + +%struct.LongestMember = type { i8, i32 } +%struct.MyString = type { i32 } +%struct.UnionType = type { %struct.LongestMember } define void @_Z4testP9UnionTypePS0_(%struct.UnionType* %p, %struct.UnionType** %pointerToUnion) { entry: - %tmp = alloca %struct.UnionType, align 8 ; <%struct.UnionType*> [#uses=2] - %tmp2 = getelementptr %struct.UnionType* %tmp, i32 0, i32 0, i32 0 ; <i8*> [#uses=1] - %tmp13 = getelementptr %struct.UnionType* %p, i32 0, i32 0, i32 0 ; <i8*> [#uses=1] - call void @llvm.memcpy.i32( i8* %tmp2, i8* %tmp13, i32 8, i32 0 ) - %tmp5 = load %struct.UnionType** %pointerToUnion ; <%struct.UnionType*> [#uses=1] - %tmp56 = getelementptr %struct.UnionType* %tmp5, i32 0, i32 0, i32 0 ; <i8*> [#uses=1] - %tmp7 = getelementptr %struct.UnionType* %tmp, i32 0, i32 0, i32 0 ; <i8*> [#uses=1] - call void @llvm.memcpy.i32( i8* %tmp56, i8* %tmp7, i32 8, i32 0 ) - ret void + %tmp = alloca %struct.UnionType, align 8 + %tmp2 = getelementptr %struct.UnionType* %tmp, i32 0, i32 0, i32 0 + %tmp13 = getelementptr %struct.UnionType* %p, i32 0, i32 0, i32 0 + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp2, i8* %tmp13, i32 8, i32 0, i1 false) + %tmp5 = load %struct.UnionType** %pointerToUnion + %tmp56 = getelementptr %struct.UnionType* %tmp5, i32 0, i32 0, i32 0 + %tmp7 = getelementptr %struct.UnionType* %tmp, i32 0, i32 0, i32 0 + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp56, i8* %tmp7, i32 8, i32 0, i1 false) + ret void } -declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind diff --git a/test/Transforms/ScalarRepl/2008-06-22-LargeArray.ll b/test/Transforms/ScalarRepl/2008-06-22-LargeArray.ll index b704727..71ba601 100644 --- a/test/Transforms/ScalarRepl/2008-06-22-LargeArray.ll +++ b/test/Transforms/ScalarRepl/2008-06-22-LargeArray.ll @@ -4,14 +4,14 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" target triple = "i386-apple-darwin8" -define void @memtest1(i8* %dst, i8* %src) nounwind { +define void @memtest1(i8* %dst, i8* %src) nounwind { entry: - %temp = alloca [200 x i8] ; <[100 x i8]*> [#uses=2] - %temp1 = bitcast [200 x i8]* %temp to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32( i8* %temp1, i8* %src, i32 200, i32 1 ) - %temp3 = bitcast [200 x i8]* %temp to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32( i8* %dst, i8* %temp3, i32 200, i32 1 ) - ret void + %temp = alloca [200 x i8] + %temp1 = bitcast [200 x i8]* %temp to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %temp1, i8* %src, i32 200, i32 1, i1 false) + %temp3 = bitcast [200 x i8]* %temp to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dst, i8* %temp3, i32 200, i32 1, i1 false) + ret void } -declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind diff --git a/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll b/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll index 1df01c1..7cccb19 100644 --- a/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll +++ b/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll @@ -2,21 +2,22 @@ ; PR2423 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" target triple = "i386-apple-darwin8" - %struct.x = type { [1 x i32], i32, i32 } + +%struct.x = type { [1 x i32], i32, i32 } define i32 @b() nounwind { entry: - %s = alloca %struct.x ; <%struct.x*> [#uses=2] - %r = alloca %struct.x ; <%struct.x*> [#uses=2] - call i32 @a( %struct.x* %s ) nounwind ; <i32>:0 [#uses=0] - %r1 = bitcast %struct.x* %r to i8* ; <i8*> [#uses=1] - %s2 = bitcast %struct.x* %s to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32( i8* %r1, i8* %s2, i32 12, i32 8 ) - getelementptr %struct.x* %r, i32 0, i32 0, i32 1 ; <i32*>:1 [#uses=1] - load i32* %1, align 4 ; <i32>:2 [#uses=1] - ret i32 %2 + %s = alloca %struct.x + %r = alloca %struct.x + %0 = call i32 @a(%struct.x* %s) nounwind + %r1 = bitcast %struct.x* %r to i8* + %s2 = bitcast %struct.x* %s to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %r1, i8* %s2, i32 12, i32 8, i1 false) + %1 = getelementptr %struct.x* %r, i32 0, i32 0, i32 1 + %2 = load i32* %1, align 4 + ret i32 %2 } declare i32 @a(%struct.x*) -declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind diff --git a/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll b/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll index e32e683..e7a58f1 100644 --- a/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll +++ b/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll @@ -18,8 +18,8 @@ entry: ; because the type of the first element in %struct.two is i8. %tmpS = getelementptr %struct.two* %S, i32 0, i32 0, i32 0 %tmpD = bitcast %struct.two* %D to i8* - call void @llvm.memmove.i32(i8* %tmpD, i8* %tmpS, i32 4, i32 1) + call void @llvm.memmove.p0i8.p0i8.i32(i8* %tmpD, i8* %tmpS, i32 4, i32 1, i1 false) ret void } -declare void @llvm.memmove.i32(i8*, i8*, i32, i32) nounwind +declare void @llvm.memmove.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind
\ No newline at end of file diff --git a/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll b/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll index 526457b..3218d59 100644 --- a/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll +++ b/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll @@ -12,9 +12,8 @@ entry: %0 = getelementptr %struct.st* %s, i32 0, i32 0 ; <i16*> [#uses=1] store i16 1, i16* %0, align 4 %s1 = bitcast %struct.st* %s to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32(i8* %p, i8* %s1, i32 2, i32 1) + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %p, i8* %s1, i32 2, i32 1, i1 false) ret void } -declare void @llvm.memcpy.i32(i8* nocapture, i8* nocapture, i32, i32) nounwind - +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind diff --git a/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll b/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll index 31d9bae..1993e4f 100644 --- a/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll +++ b/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll @@ -13,54 +13,54 @@ define void @test(<8 x i16> %tmp.0, %struct.int16x8x2_t* %dst) nounwind { ; CHECK: @test ; CHECK-NOT: alloca ; CHECK: "alloca point" +; CHECK: store <8 x i16> +; CHECK: store <8 x i16> + entry: - %tmp_addr = alloca %struct.int16x8_t ; <%struct.int16x8_t*> [#uses=3] - %dst_addr = alloca %struct.int16x8x2_t* ; <%struct.int16x8x2_t**> [#uses=2] - %__rv = alloca %union..0anon ; <%union..0anon*> [#uses=2] - %__bx = alloca %struct.int16x8_t ; <%struct.int16x8_t*> [#uses=2] - %__ax = alloca %struct.int16x8_t ; <%struct.int16x8_t*> [#uses=2] - %tmp2 = alloca %struct.int16x8x2_t ; <%struct.int16x8x2_t*> [#uses=2] - %0 = alloca %struct.int16x8x2_t ; <%struct.int16x8x2_t*> [#uses=2] - %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0] - %1 = getelementptr inbounds %struct.int16x8_t* %tmp_addr, i32 0, i32 0 ; <<8 x i16>*> [#uses=1] + %tmp_addr = alloca %struct.int16x8_t + %dst_addr = alloca %struct.int16x8x2_t* + %__rv = alloca %union..0anon + %__bx = alloca %struct.int16x8_t + %__ax = alloca %struct.int16x8_t + %tmp2 = alloca %struct.int16x8x2_t + %0 = alloca %struct.int16x8x2_t + %"alloca point" = bitcast i32 0 to i32 + %1 = getelementptr inbounds %struct.int16x8_t* %tmp_addr, i32 0, i32 0 store <8 x i16> %tmp.0, <8 x i16>* %1 store %struct.int16x8x2_t* %dst, %struct.int16x8x2_t** %dst_addr - %2 = getelementptr inbounds %struct.int16x8_t* %__ax, i32 0, i32 0 ; <<8 x i16>*> [#uses=1] - %3 = getelementptr inbounds %struct.int16x8_t* %tmp_addr, i32 0, i32 0 ; <<8 x i16>*> [#uses=1] - %4 = load <8 x i16>* %3, align 16 ; <<8 x i16>> [#uses=1] + %2 = getelementptr inbounds %struct.int16x8_t* %__ax, i32 0, i32 0 + %3 = getelementptr inbounds %struct.int16x8_t* %tmp_addr, i32 0, i32 0 + %4 = load <8 x i16>* %3, align 16 store <8 x i16> %4, <8 x i16>* %2, align 16 - %5 = getelementptr inbounds %struct.int16x8_t* %__bx, i32 0, i32 0 ; <<8 x i16>*> [#uses=1] - %6 = getelementptr inbounds %struct.int16x8_t* %tmp_addr, i32 0, i32 0 ; <<8 x i16>*> [#uses=1] - %7 = load <8 x i16>* %6, align 16 ; <<8 x i16>> [#uses=1] + %5 = getelementptr inbounds %struct.int16x8_t* %__bx, i32 0, i32 0 + %6 = getelementptr inbounds %struct.int16x8_t* %tmp_addr, i32 0, i32 0 + %7 = load <8 x i16>* %6, align 16 store <8 x i16> %7, <8 x i16>* %5, align 16 - %8 = getelementptr inbounds %struct.int16x8_t* %__ax, i32 0, i32 0 ; <<8 x i16>*> [#uses=1] - %9 = load <8 x i16>* %8, align 16 ; <<8 x i16>> [#uses=2] - %10 = getelementptr inbounds %struct.int16x8_t* %__bx, i32 0, i32 0 ; <<8 x i16>*> [#uses=1] - %11 = load <8 x i16>* %10, align 16 ; <<8 x i16>> [#uses=2] - %12 = getelementptr inbounds %union..0anon* %__rv, i32 0, i32 0 ; <%struct.int16x8x2_t*> [#uses=1] - %13 = bitcast %struct.int16x8x2_t* %12 to %struct.__neon_int16x8x2_t* ; <%struct.__neon_int16x8x2_t*> [#uses=2] - %14 = shufflevector <8 x i16> %9, <8 x i16> %11, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> ; <<8 x i16>> [#uses=1] - %15 = getelementptr inbounds %struct.__neon_int16x8x2_t* %13, i32 0, i32 0 ; <<8 x i16>*> [#uses=1] + %8 = getelementptr inbounds %struct.int16x8_t* %__ax, i32 0, i32 0 + %9 = load <8 x i16>* %8, align 16 + %10 = getelementptr inbounds %struct.int16x8_t* %__bx, i32 0, i32 0 + %11 = load <8 x i16>* %10, align 16 + %12 = getelementptr inbounds %union..0anon* %__rv, i32 0, i32 0 + %13 = bitcast %struct.int16x8x2_t* %12 to %struct.__neon_int16x8x2_t* + %14 = shufflevector <8 x i16> %9, <8 x i16> %11, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> + %15 = getelementptr inbounds %struct.__neon_int16x8x2_t* %13, i32 0, i32 0 store <8 x i16> %14, <8 x i16>* %15 - %16 = shufflevector <8 x i16> %9, <8 x i16> %11, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> ; <<8 x i16>> [#uses=1] - %17 = getelementptr inbounds %struct.__neon_int16x8x2_t* %13, i32 0, i32 1 ; <<8 x i16>*> [#uses=1] + %16 = shufflevector <8 x i16> %9, <8 x i16> %11, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> + %17 = getelementptr inbounds %struct.__neon_int16x8x2_t* %13, i32 0, i32 1 store <8 x i16> %16, <8 x i16>* %17 - %18 = getelementptr inbounds %union..0anon* %__rv, i32 0, i32 0 ; <%struct.int16x8x2_t*> [#uses=1] - %19 = bitcast %struct.int16x8x2_t* %0 to i8* ; <i8*> [#uses=1] - %20 = bitcast %struct.int16x8x2_t* %18 to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32(i8* %19, i8* %20, i32 32, i32 16) - %tmp21 = bitcast %struct.int16x8x2_t* %tmp2 to i8* ; <i8*> [#uses=1] - %21 = bitcast %struct.int16x8x2_t* %0 to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32(i8* %tmp21, i8* %21, i32 32, i32 16) - %22 = load %struct.int16x8x2_t** %dst_addr, align 4 ; <%struct.int16x8x2_t*> [#uses=1] - %23 = bitcast %struct.int16x8x2_t* %22 to i8* ; <i8*> [#uses=1] - %tmp22 = bitcast %struct.int16x8x2_t* %tmp2 to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32(i8* %23, i8* %tmp22, i32 32, i32 16) + %18 = getelementptr inbounds %union..0anon* %__rv, i32 0, i32 0 + %19 = bitcast %struct.int16x8x2_t* %0 to i8* + %20 = bitcast %struct.int16x8x2_t* %18 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %19, i8* %20, i32 32, i32 16, i1 false) + %tmp21 = bitcast %struct.int16x8x2_t* %tmp2 to i8* + %21 = bitcast %struct.int16x8x2_t* %0 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp21, i8* %21, i32 32, i32 16, i1 false) + %22 = load %struct.int16x8x2_t** %dst_addr, align 4 + %23 = bitcast %struct.int16x8x2_t* %22 to i8* + %tmp22 = bitcast %struct.int16x8x2_t* %tmp2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %23, i8* %tmp22, i32 32, i32 16, i1 false) br label %return -; CHECK: store <8 x i16> -; CHECK: store <8 x i16> - return: ; preds = %entry ret void } @@ -69,21 +69,22 @@ return: ; preds = %entry %struct._NSRange = type { i64 } define void @test_memcpy_self() nounwind { -; CHECK: @test_memcpy_self -; CHECK-NOT: alloca -; CHECK: br i1 entry: - %range = alloca %struct._NSRange ; <%struct._NSRange*> [#uses=2] + %range = alloca %struct._NSRange br i1 undef, label %cond.true, label %cond.false cond.true: ; preds = %entry - %tmp3 = bitcast %struct._NSRange* %range to i8* ; <i8*> [#uses=1] - %tmp4 = bitcast %struct._NSRange* %range to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32(i8* %tmp3, i8* %tmp4, i32 8, i32 8) + %tmp3 = bitcast %struct._NSRange* %range to i8* + %tmp4 = bitcast %struct._NSRange* %range to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp3, i8* %tmp4, i32 8, i32 8, i1 false) ret void cond.false: ; preds = %entry ret void + +; CHECK: @test_memcpy_self +; CHECK-NOT: alloca +; CHECK: br i1 } -declare void @llvm.memcpy.i32(i8* nocapture, i8* nocapture, i32, i32) nounwind +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind diff --git a/test/Transforms/ScalarRepl/2010-01-18-SelfCopy.ll b/test/Transforms/ScalarRepl/2010-01-18-SelfCopy.ll index 3aee399..52df6d5 100644 --- a/test/Transforms/ScalarRepl/2010-01-18-SelfCopy.ll +++ b/test/Transforms/ScalarRepl/2010-01-18-SelfCopy.ll @@ -3,7 +3,7 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32" -%struct.test = type { [3 x double ] } +%struct.test = type { [3 x double] } define void @test_memcpy_self() nounwind { ; CHECK: @test_memcpy_self @@ -11,8 +11,8 @@ define void @test_memcpy_self() nounwind { ; CHECK: ret void %1 = alloca %struct.test %2 = bitcast %struct.test* %1 to i8* - call void @llvm.memcpy.i32(i8* %2, i8* %2, i32 24, i32 4) + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %2, i32 24, i32 4, i1 false) ret void } -declare void @llvm.memcpy.i32(i8* nocapture, i8* nocapture, i32, i32) nounwind +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind diff --git a/test/Transforms/ScalarRepl/badarray.ll b/test/Transforms/ScalarRepl/badarray.ll index 3ec3c01..768fec6 100644 --- a/test/Transforms/ScalarRepl/badarray.ll +++ b/test/Transforms/ScalarRepl/badarray.ll @@ -48,10 +48,10 @@ entry: %callret = call %padded *@test3f() ; <i32> [#uses=2] %callretcast = bitcast %padded* %callret to i8* ; <i8*> [#uses=1] %var_11 = bitcast %padded* %var_1 to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32(i8* %callretcast, i8* %var_11, i32 8, i32 4) + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %callretcast, i8* %var_11, i32 8, i32 4, i1 false) ret void } -declare void @llvm.memcpy.i32(i8* nocapture, i8* nocapture, i32, i32) nounwind +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind declare %padded* @test3f() diff --git a/test/Transforms/ScalarRepl/crash.ll b/test/Transforms/ScalarRepl/crash.ll index 83daaaf..e06d0c1 100644 --- a/test/Transforms/ScalarRepl/crash.ll +++ b/test/Transforms/ScalarRepl/crash.ll @@ -143,7 +143,6 @@ entry: %struct.anon = type { %struct.aal_spanarray_t } -declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) define fastcc void @test7() { entry: @@ -158,7 +157,7 @@ cond_next114.i: ; preds = %cond_true cond_next: ; preds = %cond_true %SB19 = bitcast %struct.aal_spanbucket_t* %SB to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32( i8* %SB19, i8* null, i32 12, i32 0 ) + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %SB19, i8* null, i32 12, i32 0, i1 false) br i1 false, label %cond_next34, label %cond_next79 cond_next34: ; preds = %cond_next @@ -196,7 +195,7 @@ entry: %.compoundliteral = alloca %0 %tmp228 = getelementptr %0* %.compoundliteral, i32 0, i32 7 %tmp229 = bitcast [0 x i16]* %tmp228 to i8* - call void @llvm.memset.i64(i8* %tmp229, i8 0, i64 0, i32 2) + call void @llvm.memset.p0i8.i64(i8* %tmp229, i8 0, i64 0, i32 2, i1 false) unreachable } @@ -260,3 +259,6 @@ entry: call void %0() nounwind ret void } + +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind +declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind diff --git a/test/Transforms/ScalarRepl/memset-aggregate.ll b/test/Transforms/ScalarRepl/memset-aggregate.ll index 5aeefcd..42e7a0f 100644 --- a/test/Transforms/ScalarRepl/memset-aggregate.ll +++ b/test/Transforms/ScalarRepl/memset-aggregate.ll @@ -14,31 +14,29 @@ entry: %L = alloca %struct.foo, align 8 ; <%struct.foo*> [#uses=2] %L2 = bitcast %struct.foo* %L to i8* ; <i8*> [#uses=1] %tmp13 = bitcast %struct.foo* %P to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.i32( i8* %L2, i8* %tmp13, i32 8, i32 4 ) + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %L2, i8* %tmp13, i32 8, i32 4, i1 false) %tmp4 = getelementptr %struct.foo* %L, i32 0, i32 0 ; <i32*> [#uses=1] %tmp5 = load i32* %tmp4 ; <i32> [#uses=1] ret i32 %tmp5 } -declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) define i32 @test2() { entry: %L = alloca [4 x %struct.foo], align 16 ; <[4 x %struct.foo]*> [#uses=2] %L12 = bitcast [4 x %struct.foo]* %L to i8* ; <i8*> [#uses=1] - call void @llvm.memset.i32( i8* %L12, i8 0, i32 32, i32 16 ) + call void @llvm.memset.p0i8.i32(i8* %L12, i8 0, i32 32, i32 16, i1 false) %tmp4 = getelementptr [4 x %struct.foo]* %L, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] %tmp5 = load i32* %tmp4 ; <i32> [#uses=1] ret i32 %tmp5 } -declare void @llvm.memset.i32(i8*, i8, i32, i32) define i32 @test3() { entry: %B = alloca %struct.bar, align 16 ; <%struct.bar*> [#uses=4] %B1 = bitcast %struct.bar* %B to i8* ; <i8*> [#uses=1] - call void @llvm.memset.i32( i8* %B1, i8 1, i32 24, i32 16 ) + call void @llvm.memset.p0i8.i32(i8* %B1, i8 1, i32 24, i32 16, i1 false) %tmp3 = getelementptr %struct.bar* %B, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] store i32 1, i32* %tmp3 %tmp4 = getelementptr %struct.bar* %B, i32 0, i32 2 ; <double*> [#uses=1] @@ -58,9 +56,12 @@ entry: store i32 1, i32* %0, align 8 %1 = getelementptr %struct.f* %A, i32 0, i32 1 ; <i32*> [#uses=1] %2 = bitcast i32* %1 to i8* ; <i8*> [#uses=1] - call void @llvm.memset.i32(i8* %2, i8 2, i32 12, i32 4) + call void @llvm.memset.p0i8.i32(i8* %2, i8 2, i32 12, i32 4, i1 false) %3 = getelementptr %struct.f* %A, i32 0, i32 2 ; <i32*> [#uses=1] %4 = load i32* %3, align 8 ; <i32> [#uses=1] %retval12 = trunc i32 %4 to i16 ; <i16> [#uses=1] ret i16 %retval12 } +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind + +declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) nounwind
\ No newline at end of file |