diff options
author | Tanya Lattner <tonic@nondot.org> | 2008-03-18 04:14:37 +0000 |
---|---|---|
committer | Tanya Lattner <tonic@nondot.org> | 2008-03-18 04:14:37 +0000 |
commit | 683283763f3293eaa6d7034b23fac0d1620e13c7 (patch) | |
tree | c7465502866ccb75db5360e7809bc2e567672ec6 | |
parent | f04d8d1593d0eedf5b9deaab48462dd88fefab93 (diff) | |
download | external_llvm-683283763f3293eaa6d7034b23fac0d1620e13c7.zip external_llvm-683283763f3293eaa6d7034b23fac0d1620e13c7.tar.gz external_llvm-683283763f3293eaa6d7034b23fac0d1620e13c7.tar.bz2 |
Upgrade tests to not use llvm-upgrade.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48484 91177308-0d34-0410-b5e6-96231b3b80d8
23 files changed, 336 insertions, 377 deletions
diff --git a/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll b/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll index c20411d..adfa5f8 100644 --- a/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll +++ b/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll @@ -1,12 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ ; RUN: grep alloca | grep {4 x} ; Test that an array is not incorrectly deconstructed... -int %test() { - %X = alloca [4 x int] - %Y = getelementptr [4 x int]* %X, long 0, long 0 - %Z = getelementptr int* %Y, long 1 ; Must preserve arrayness! - %A = load int* %Z - ret int %A +define i32 @test() { + %X = alloca [4 x i32] ; <[4 x i32]*> [#uses=1] + %Y = getelementptr [4 x i32]* %X, i64 0, i64 0 ; <i32*> [#uses=1] + ; Must preserve arrayness! + %Z = getelementptr i32* %Y, i64 1 ; <i32*> [#uses=1] + %A = load i32* %Z ; <i32> [#uses=1] + ret i32 %A } diff --git a/test/Transforms/ScalarRepl/2003-05-30-InvalidIndices.ll b/test/Transforms/ScalarRepl/2003-05-30-InvalidIndices.ll index a66e575..83a18c1 100644 --- a/test/Transforms/ScalarRepl/2003-05-30-InvalidIndices.ll +++ b/test/Transforms/ScalarRepl/2003-05-30-InvalidIndices.ll @@ -1,7 +1,8 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl +; RUN: llvm-as < %s | opt -scalarrepl -void %main() { - %E = alloca { { int, float, double, long }, { int, float, double, long } } ; <{ { int, float, double, long }, { int, float, double, long } }*> [#uses=1] - %tmp.151 = getelementptr { { int, float, double, long }, { int, float, double, long } }* %E, long 0, uint 1, uint 3 ; <long*> [#uses=0] +define void @main() { + %E = alloca { { i32, float, double, i64 }, { i32, float, double, i64 } } ; <{ { i32, float, double, i64 }, { i32, float, double, i64 } }*> [#uses=1] + %tmp.151 = getelementptr { { i32, float, double, i64 }, { i32, float, double, i64 } }* %E, i64 0, i32 1, i32 3 ; <i64*> [#uses=0] ret void } + diff --git a/test/Transforms/ScalarRepl/2003-05-30-MultiLevel.ll b/test/Transforms/ScalarRepl/2003-05-30-MultiLevel.ll index 20beadc..4220649 100644 --- a/test/Transforms/ScalarRepl/2003-05-30-MultiLevel.ll +++ b/test/Transforms/ScalarRepl/2003-05-30-MultiLevel.ll @@ -1,9 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl +; RUN: llvm-as < %s | opt -scalarrepl -int %test() { - %X = alloca { [ 4 x int] } - %Y = getelementptr { [ 4 x int] }* %X, long 0, uint 0, long 2 - store int 4, int* %Y - %Z = load int* %Y - ret int %Z +define i32 @test() { + %X = alloca { [4 x i32] } ; <{ [4 x i32] }*> [#uses=1] + %Y = getelementptr { [4 x i32] }* %X, i64 0, i32 0, i64 2 ; <i32*> [#uses=2] + store i32 4, i32* %Y + %Z = load i32* %Y ; <i32> [#uses=1] + ret i32 %Z } + diff --git a/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll b/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll index c3f3b8b..ef48cf8 100644 --- a/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll +++ b/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll @@ -1,12 +1,13 @@ ; Scalar replacement was incorrectly promoting this alloca!! ; -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ ; RUN: sed {s/;.*//g} | grep \[ -sbyte *%test() { - %A = alloca [30 x sbyte] - %B = getelementptr [30 x sbyte]* %A, long 0, long 0 - %C = getelementptr sbyte* %B, long 1 - store sbyte 0, sbyte* %B - ret sbyte* %C +define i8* @test() { + %A = alloca [30 x i8] ; <[30 x i8]*> [#uses=1] + %B = getelementptr [30 x i8]* %A, i64 0, i64 0 ; <i8*> [#uses=2] + %C = getelementptr i8* %B, i64 1 ; <i8*> [#uses=1] + store i8 0, i8* %B + ret i8* %C } + diff --git a/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll b/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll index d945aeb..47b7035 100644 --- a/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll +++ b/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll @@ -1,15 +1,16 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ ; RUN: grep alloca | grep \{ -implementation ; Functions: - -declare int %.callback_1(sbyte*) -declare void %.iter_2(int (sbyte*)*, sbyte*) - -int %main() { - %d = alloca { [80 x sbyte], int, uint } - %tmp.0 = getelementptr { [80 x sbyte], int, uint }* %d, long 0, uint 2 - store uint 0, uint* %tmp.0 - %tmp.1 = getelementptr { [80 x sbyte], int, uint }* %d, long 0, uint 0, long 0 - call void %.iter_2( int (sbyte*)* %.callback_1, sbyte* %tmp.1 ) - ret int 0 + +declare i32 @.callback_1(i8*) + +declare void @.iter_2(i32 (i8*)*, i8*) + +define i32 @main() { + %d = alloca { [80 x i8], i32, i32 } ; <{ [80 x i8], i32, i32 }*> [#uses=2] + %tmp.0 = getelementptr { [80 x i8], i32, i32 }* %d, i64 0, i32 2 ; <i32*> [#uses=1] + store i32 0, i32* %tmp.0 + %tmp.1 = getelementptr { [80 x i8], i32, i32 }* %d, i64 0, i32 0, i64 0 ; <i8*> [#uses=1] + call void @.iter_2( i32 (i8*)* @.callback_1, i8* %tmp.1 ) + ret i32 0 } + diff --git a/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll b/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll index f7f1593..de6e297 100644 --- a/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll +++ b/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll @@ -1,34 +1,28 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -disable-output -target endian = big -target pointersize = 32 - %struct.rtx_def = type { [2 x ubyte], int, [1 x %union.rtunion_def] } - %union.rtunion_def = type { uint } +; RUN: llvm-as < %s | opt -scalarrepl -disable-output -implementation ; Functions: +target datalayout = "E-p:32:32" + %struct.rtx_def = type { [2 x i8], i32, [1 x %union.rtunion_def] } + %union.rtunion_def = type { i32 } -void %find_reloads() { +define void @find_reloads() { entry: - %c_addr.i = alloca sbyte ; <sbyte*> [#uses=1] - switch uint 0, label %return [ - uint 36, label %label.7 - uint 34, label %label.7 - uint 41, label %label.5 + %c_addr.i = alloca i8 ; <i8*> [#uses=1] + switch i32 0, label %return [ + i32 36, label %label.7 + i32 34, label %label.7 + i32 41, label %label.5 ] - label.5: ; preds = %entry ret void - label.7: ; preds = %entry, %entry - br bool false, label %then.4, label %switchexit.0 - + br i1 false, label %then.4, label %switchexit.0 then.4: ; preds = %label.7 - %tmp.0.i = cast sbyte* %c_addr.i to int* ; <int*> [#uses=1] - store int 44, int* %tmp.0.i + %tmp.0.i = bitcast i8* %c_addr.i to i32* ; <i32*> [#uses=1] + store i32 44, i32* %tmp.0.i ret void - switchexit.0: ; preds = %label.7 ret void - return: ; preds = %entry ret void } + diff --git a/test/Transforms/ScalarRepl/2006-01-24-IllegalUnionPromoteCrash.ll b/test/Transforms/ScalarRepl/2006-01-24-IllegalUnionPromoteCrash.ll index d974931..bcb8457 100644 --- a/test/Transforms/ScalarRepl/2006-01-24-IllegalUnionPromoteCrash.ll +++ b/test/Transforms/ScalarRepl/2006-01-24-IllegalUnionPromoteCrash.ll @@ -1,12 +1,12 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -disable-output +; RUN: llvm-as < %s | opt -scalarrepl -disable-output -target endian = big -target pointersize = 32 +target datalayout = "E-p:32:32" -int %test(long %L) { - %X = alloca int - %Y = cast int* %X to ulong* - store ulong 0, ulong* %Y - %Z = load int *%X - ret int %Z +define i32 @test(i64 %L) { + %X = alloca i32 ; <i32*> [#uses=2] + %Y = bitcast i32* %X to i64* ; <i64*> [#uses=1] + store i64 0, i64* %Y + %Z = load i32* %X ; <i32> [#uses=1] + ret i32 %Z } + diff --git a/test/Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll b/test/Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll index a4d3933..18493f5 100644 --- a/test/Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll +++ b/test/Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll @@ -1,18 +1,18 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -disable-output +; RUN: llvm-as < %s | opt -scalarrepl -disable-output -void %output_toc() { +define void @output_toc() { entry: - %buf = alloca [256 x sbyte], align 16 ; <[256 x sbyte]*> [#uses=1] - %name = alloca sbyte*, align 4 ; <sbyte**> [#uses=1] - %real_name = alloca sbyte*, align 4 ; <sbyte**> [#uses=0] - "alloca point" = cast int 0 to int ; <int> [#uses=0] - %buf = cast [256 x sbyte]* %buf to sbyte* ; <sbyte*> [#uses=1] - store sbyte* %buf, sbyte** %name - call void %abort( ) + %buf = alloca [256 x i8], align 16 ; <[256 x i8]*> [#uses=1] + %name = alloca i8*, align 4 ; <i8**> [#uses=1] + %real_name = alloca i8*, align 4 ; <i8**> [#uses=0] + %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0] + %buf.upgrd.1 = bitcast [256 x i8]* %buf to i8* ; <i8*> [#uses=1] + store i8* %buf.upgrd.1, i8** %name + call void @abort( ) unreachable - return: ; No predecessors! ret void } -declare void %abort() +declare void @abort() + diff --git a/test/Transforms/ScalarRepl/2006-10-23-PointerUnionCrash.ll b/test/Transforms/ScalarRepl/2006-10-23-PointerUnionCrash.ll index 9fcf16d..0007665 100644 --- a/test/Transforms/ScalarRepl/2006-10-23-PointerUnionCrash.ll +++ b/test/Transforms/ScalarRepl/2006-10-23-PointerUnionCrash.ll @@ -1,75 +1,57 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -disable-output - +; RUN: llvm-as < %s | opt -scalarrepl -disable-output +; END. target datalayout = "e-p:32:32" -target endian = little -target pointersize = 32 target triple = "i686-apple-darwin8.7.2" -implementation ; Functions: - -void %glgProcessColor() { +define void @glgProcessColor() { entry: - %source_ptr = alloca sbyte*, align 4 ; <sbyte**> [#uses=2] - br bool false, label %bb1357, label %cond_next583 - + %source_ptr = alloca i8*, align 4 ; <i8**> [#uses=2] + br i1 false, label %bb1357, label %cond_next583 cond_next583: ; preds = %entry ret void - bb1357: ; preds = %entry - br bool false, label %bb1365, label %bb27055 - + br i1 false, label %bb1365, label %bb27055 bb1365: ; preds = %bb1357 - switch uint 0, label %cond_next10377 [ - uint 0, label %bb4679 - uint 1, label %bb4679 - uint 2, label %bb4679 - uint 3, label %bb4679 - uint 4, label %bb5115 - uint 5, label %bb6651 - uint 6, label %bb7147 - uint 7, label %bb8683 - uint 8, label %bb9131 - uint 9, label %bb9875 - uint 10, label %bb4679 - uint 11, label %bb4859 - uint 12, label %bb4679 - uint 16, label %bb10249 + switch i32 0, label %cond_next10377 [ + i32 0, label %bb4679 + i32 1, label %bb4679 + i32 2, label %bb4679 + i32 3, label %bb4679 + i32 4, label %bb5115 + i32 5, label %bb6651 + i32 6, label %bb7147 + i32 7, label %bb8683 + i32 8, label %bb9131 + i32 9, label %bb9875 + i32 10, label %bb4679 + i32 11, label %bb4859 + i32 12, label %bb4679 + i32 16, label %bb10249 ] - bb4679: ; preds = %bb1365, %bb1365, %bb1365, %bb1365, %bb1365, %bb1365 ret void - bb4859: ; preds = %bb1365 ret void - bb5115: ; preds = %bb1365 ret void - bb6651: ; preds = %bb1365 ret void - bb7147: ; preds = %bb1365 ret void - bb8683: ; preds = %bb1365 ret void - bb9131: ; preds = %bb1365 ret void - bb9875: ; preds = %bb1365 - %source_ptr9884 = cast sbyte** %source_ptr to ubyte** ; <ubyte**> [#uses=1] - %tmp9885 = load ubyte** %source_ptr9884 ; <ubyte*> [#uses=0] + %source_ptr9884 = bitcast i8** %source_ptr to i8** ; <i8**> [#uses=1] + %tmp9885 = load i8** %source_ptr9884 ; <i8*> [#uses=0] ret void - bb10249: ; preds = %bb1365 - %source_ptr10257 = cast sbyte** %source_ptr to ushort** ; <ushort**> [#uses=1] - %tmp10258 = load ushort** %source_ptr10257 ; <ushort*> [#uses=0] + %source_ptr10257 = bitcast i8** %source_ptr to i16** ; <i16**> [#uses=1] + %tmp10258 = load i16** %source_ptr10257 ; <i16*> [#uses=0] ret void - cond_next10377: ; preds = %bb1365 ret void - bb27055: ; preds = %bb1357 ret void } diff --git a/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll b/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll index 7e00a61..1f3df49 100644 --- a/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll +++ b/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll @@ -1,19 +1,20 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ ; RUN: grep -F {alloca \[2 x <4 x i32>\]} -int %func(<4 x float> %v0, <4 x float> %v1) { - %vsiidx = alloca [2 x <4 x int>], align 16 ; <[2 x <4 x int>]*> [#uses=3] - %tmp = call <4 x int> %llvm.x86.sse2.cvttps2dq( <4 x float> %v0 ) ; <<4 x int>> [#uses=2] - %tmp = cast <4 x int> %tmp to <2 x long> ; <<2 x long>> [#uses=0] - %tmp = getelementptr [2 x <4 x int>]* %vsiidx, int 0, int 0 ; <<4 x int>*> [#uses=1] - store <4 x int> %tmp, <4 x int>* %tmp - %tmp10 = call <4 x int> %llvm.x86.sse2.cvttps2dq( <4 x float> %v1 ) ; <<4 x int>> [#uses=2] - %tmp10 = cast <4 x int> %tmp10 to <2 x long> ; <<2 x long>> [#uses=0] - %tmp14 = getelementptr [2 x <4 x int>]* %vsiidx, int 0, int 1 ; <<4 x int>*> [#uses=1] - store <4 x int> %tmp10, <4 x int>* %tmp14 - %tmp15 = getelementptr [2 x <4 x int>]* %vsiidx, int 0, int 0, int 4 ; <int*> [#uses=1] - %tmp = load int* %tmp15 ; <int> [#uses=1] - ret int %tmp +define i32 @func(<4 x float> %v0, <4 x float> %v1) { + %vsiidx = alloca [2 x <4 x i32>], align 16 ; <[2 x <4 x i32>]*> [#uses=3] + %tmp = call <4 x i32> @llvm.x86.sse2.cvttps2dq( <4 x float> %v0 ) ; <<4 x i32>> [#uses=2] + %tmp.upgrd.1 = bitcast <4 x i32> %tmp to <2 x i64> ; <<2 x i64>> [#uses=0] + %tmp.upgrd.2 = getelementptr [2 x <4 x i32>]* %vsiidx, i32 0, i32 0 ; <<4 x i32>*> [#uses=1] + store <4 x i32> %tmp, <4 x i32>* %tmp.upgrd.2 + %tmp10 = call <4 x i32> @llvm.x86.sse2.cvttps2dq( <4 x float> %v1 ) ; <<4 x i32>> [#uses=2] + %tmp10.upgrd.3 = bitcast <4 x i32> %tmp10 to <2 x i64> ; <<2 x i64>> [#uses=0] + %tmp14 = getelementptr [2 x <4 x i32>]* %vsiidx, i32 0, i32 1 ; <<4 x i32>*> [#uses=1] + store <4 x i32> %tmp10, <4 x i32>* %tmp14 + %tmp15 = getelementptr [2 x <4 x i32>]* %vsiidx, i32 0, i32 0, i32 4 ; <i32*> [#uses=1] + %tmp.upgrd.4 = load i32* %tmp15 ; <i32> [#uses=1] + ret i32 %tmp.upgrd.4 } -declare <4 x int> %llvm.x86.sse2.cvttps2dq(<4 x float>) +declare <4 x i32> @llvm.x86.sse2.cvttps2dq(<4 x float>) + diff --git a/test/Transforms/ScalarRepl/2006-12-11-SROA-Crash.ll b/test/Transforms/ScalarRepl/2006-12-11-SROA-Crash.ll index 0b87a63..ae870d3 100644 --- a/test/Transforms/ScalarRepl/2006-12-11-SROA-Crash.ll +++ b/test/Transforms/ScalarRepl/2006-12-11-SROA-Crash.ll @@ -1,24 +1,20 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -disable-output +; RUN: llvm-as < %s | opt -scalarrepl -disable-output ; PR1045 target datalayout = "e-p:32:32" -target endian = little -target pointersize = 32 target triple = "i686-pc-linux-gnu" - "struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>" = type { "struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"* } - "struct.__gnu_cxx::bitmap_allocator<char>" = type { ubyte } - "struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block" = type { [8 x sbyte] } + %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>" = type { %"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"* } + %"struct.__gnu_cxx::bitmap_allocator<char>" = type { i8 } + %"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block" = type { [8 x i8] } -implementation ; Functions: - -void %_ZN9__gnu_cxx16bitmap_allocatorIwE27_M_deallocate_single_objectEPw() { +define void @_ZN9__gnu_cxx16bitmap_allocatorIwE27_M_deallocate_single_objectEPw() { entry: - %this_addr.i = alloca "struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* ; <"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"**> [#uses=3] - %tmp = alloca "struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>", align 4 ; <"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1] - store "struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp, "struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i - %tmp.i = load "struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1] - %tmp.i = bitcast "struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp.i to "struct.__gnu_cxx::bitmap_allocator<char>"* ; <"struct.__gnu_cxx::bitmap_allocator<char>"*> [#uses=0] - %tmp1.i = load "struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1] - %tmp.i = getelementptr "struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp1.i, int 0, uint 0 ; <"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"**> [#uses=0] + %this_addr.i = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"**> [#uses=3] + %tmp = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>", align 4 ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1] + store %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp, %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i + %tmp.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1] + %tmp.i.upgrd.1 = bitcast %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp.i to %"struct.__gnu_cxx::bitmap_allocator<char>"* ; <%"struct.__gnu_cxx::bitmap_allocator<char>"*> [#uses=0] + %tmp1.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1] + %tmp.i.upgrd.2 = getelementptr %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp1.i, i32 0, i32 0 ; <%"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"**> [#uses=0] unreachable } diff --git a/test/Transforms/ScalarRepl/AggregatePromote.ll b/test/Transforms/ScalarRepl/AggregatePromote.ll index 67ccad0..104a0f9 100644 --- a/test/Transforms/ScalarRepl/AggregatePromote.ll +++ b/test/Transforms/ScalarRepl/AggregatePromote.ll @@ -1,54 +1,51 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ -; RUN: not grep alloca +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ +; RUN: not grep alloca -target endian = big -target pointersize = 32 +target datalayout = "E-p:32:32" target triple = "powerpc-apple-darwin8.0.0" -long %test1(long %X) { - %A = alloca long - store long %X, long* %A - %B = cast long* %A to int* - %C = cast int* %B to sbyte* - store sbyte 0, sbyte* %C - %Y = load long *%A - ret long %Y +define i64 @test1(i64 %X) { + %A = alloca i64 ; <i64*> [#uses=3] + store i64 %X, i64* %A + %B = bitcast i64* %A to i32* ; <i32*> [#uses=1] + %C = bitcast i32* %B to i8* ; <i8*> [#uses=1] + store i8 0, i8* %C + %Y = load i64* %A ; <i64> [#uses=1] + ret i64 %Y } - -sbyte %test2(long %X) { - %X_addr = alloca long ; <long*> [#uses=2] - store long %X, long* %X_addr - %tmp.0 = cast long* %X_addr to int* ; <int*> [#uses=1] - %tmp.1 = getelementptr int* %tmp.0, int 1 ; <int*> [#uses=1] - %tmp.2 = cast int* %tmp.1 to sbyte* - %tmp.3 = getelementptr sbyte* %tmp.2, int 3 - %tmp.2 = load sbyte* %tmp.3 ; <int> [#uses=1] - ret sbyte %tmp.2 +define i8 @test2(i64 %X) { + %X_addr = alloca i64 ; <i64*> [#uses=2] + store i64 %X, i64* %X_addr + %tmp.0 = bitcast i64* %X_addr to i32* ; <i32*> [#uses=1] + %tmp.1 = getelementptr i32* %tmp.0, i32 1 ; <i32*> [#uses=1] + %tmp.2 = bitcast i32* %tmp.1 to i8* ; <i8*> [#uses=1] + %tmp.3 = getelementptr i8* %tmp.2, i32 3 ; <i8*> [#uses=1] + %tmp.2.upgrd.1 = load i8* %tmp.3 ; <i8> [#uses=1] + ret i8 %tmp.2.upgrd.1 } -short %crafty(long %X) { - %a = alloca { long } - %tmp.0 = getelementptr { long }* %a, int 0, uint 0 ; <long*> [#uses=1] - store long %X, long* %tmp.0 - %tmp.3 = cast { long }* %a to [4 x short]* ; <[4 x short]*> [#uses=2] - %tmp.4 = getelementptr [4 x short]* %tmp.3, int 0, int 3 ; <short*> [#uses=1] - %tmp.5 = load short* %tmp.4 ; <short> [#uses=1] - %tmp.8 = getelementptr [4 x short]* %tmp.3, int 0, int 2 ; <short*> [#uses=1] - %tmp.9 = load short* %tmp.8 ; <short> [#uses=1] - %tmp.10 = or short %tmp.9, %tmp.5 ; <short> [#uses=1] - ret short %tmp.10 +define i16 @crafty(i64 %X) { + %a = alloca { i64 } ; <{ i64 }*> [#uses=2] + %tmp.0 = getelementptr { i64 }* %a, i32 0, i32 0 ; <i64*> [#uses=1] + store i64 %X, i64* %tmp.0 + %tmp.3 = bitcast { i64 }* %a to [4 x i16]* ; <[4 x i16]*> [#uses=2] + %tmp.4 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 3 ; <i16*> [#uses=1] + %tmp.5 = load i16* %tmp.4 ; <i16> [#uses=1] + %tmp.8 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 2 ; <i16*> [#uses=1] + %tmp.9 = load i16* %tmp.8 ; <i16> [#uses=1] + %tmp.10 = or i16 %tmp.9, %tmp.5 ; <i16> [#uses=1] + ret i16 %tmp.10 } -short %crafty2(long %X) { - %a = alloca long - store long %X, long* %a - %tmp.3 = cast long* %a to [4 x short]* ; <[4 x short]*> [#uses=2] - %tmp.4 = getelementptr [4 x short]* %tmp.3, int 0, int 3 ; <short*> [#uses=1] - %tmp.5 = load short* %tmp.4 ; <short> [#uses=1] - %tmp.8 = getelementptr [4 x short]* %tmp.3, int 0, int 2 ; <short*> [#uses=1] - %tmp.9 = load short* %tmp.8 ; <short> [#uses=1] - %tmp.10 = or short %tmp.9, %tmp.5 ; <short> [#uses=1] - ret short %tmp.10 +define i16 @crafty2(i64 %X) { + %a = alloca i64 ; <i64*> [#uses=2] + store i64 %X, i64* %a + %tmp.3 = bitcast i64* %a to [4 x i16]* ; <[4 x i16]*> [#uses=2] + %tmp.4 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 3 ; <i16*> [#uses=1] + %tmp.5 = load i16* %tmp.4 ; <i16> [#uses=1] + %tmp.8 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 2 ; <i16*> [#uses=1] + %tmp.9 = load i16* %tmp.8 ; <i16> [#uses=1] + %tmp.10 = or i16 %tmp.9, %tmp.5 ; <i16> [#uses=1] + ret i16 %tmp.10 } - diff --git a/test/Transforms/ScalarRepl/DifferingTypes.ll b/test/Transforms/ScalarRepl/DifferingTypes.ll index 33fab57..c060414 100644 --- a/test/Transforms/ScalarRepl/DifferingTypes.ll +++ b/test/Transforms/ScalarRepl/DifferingTypes.ll @@ -1,19 +1,15 @@ ; This is a feature test. Hopefully one day this will be implemented. The ; generated code should perform the appropriate masking operations required ; depending on the endianness of the target... -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ ; RUN: not grep alloca -implementation - -int %testfunc(int %i, sbyte %j) { - %I = alloca int - - store int %i, int* %I - - %P = cast int* %I to sbyte* - store sbyte %j, sbyte* %P - - %t = load int* %I - ret int %t +define i32 @testfunc(i32 %i, i8 %j) { + %I = alloca i32 ; <i32*> [#uses=3] + store i32 %i, i32* %I + %P = bitcast i32* %I to i8* ; <i8*> [#uses=1] + store i8 %j, i8* %P + %t = load i32* %I ; <i32> [#uses=1] + ret i32 %t } + diff --git a/test/Transforms/ScalarRepl/arraytest.ll b/test/Transforms/ScalarRepl/arraytest.ll index e6fe1a6..911a8e3 100644 --- a/test/Transforms/ScalarRepl/arraytest.ll +++ b/test/Transforms/ScalarRepl/arraytest.ll @@ -1,10 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -mem2reg | llvm-dis | not grep alloca +; RUN: llvm-as < %s | opt -scalarrepl -mem2reg | llvm-dis | not grep alloca -int %test() { - %X = alloca [ 4 x int ] - %Y = getelementptr [4x int]* %X, long 0, long 0 - store int 0, int* %Y - - %Z = load int* %Y - ret int %Z +define i32 @test() { + %X = alloca [4 x i32] ; <[4 x i32]*> [#uses=1] + %Y = getelementptr [4 x i32]* %X, i64 0, i64 0 ; <i32*> [#uses=2] + store i32 0, i32* %Y + %Z = load i32* %Y ; <i32> [#uses=1] + ret i32 %Z } + diff --git a/test/Transforms/ScalarRepl/badarray.ll b/test/Transforms/ScalarRepl/badarray.ll index f525255..1e4714e 100644 --- a/test/Transforms/ScalarRepl/badarray.ll +++ b/test/Transforms/ScalarRepl/badarray.ll @@ -1,10 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -mem2reg | llvm-dis | grep alloca +; RUN: llvm-as < %s | opt -scalarrepl -mem2reg | llvm-dis | grep alloca -int %test() { - %X = alloca [ 4 x int ] - %Y = getelementptr [4x int]* %X, long 0, long 6 ; Off end of array! - store int 0, int* %Y - - %Z = load int* %Y - ret int %Z +define i32 @test() { + %X = alloca [4 x i32] ; <[4 x i32]*> [#uses=1] + ; Off end of array! + %Y = getelementptr [4 x i32]* %X, i64 0, i64 6 ; <i32*> [#uses=2] + store i32 0, i32* %Y + %Z = load i32* %Y ; <i32> [#uses=1] + ret i32 %Z } + diff --git a/test/Transforms/ScalarRepl/basictest.ll b/test/Transforms/ScalarRepl/basictest.ll index b7e0a29..11a1d51 100644 --- a/test/Transforms/ScalarRepl/basictest.ll +++ b/test/Transforms/ScalarRepl/basictest.ll @@ -1,10 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -mem2reg | llvm-dis | not grep alloca +; RUN: llvm-as < %s | opt -scalarrepl -mem2reg | llvm-dis | not grep alloca -int %test() { - %X = alloca { int, float } - %Y = getelementptr {int,float}* %X, long 0, uint 0 - store int 0, int* %Y - - %Z = load int* %Y - ret int %Z +define i32 @test() { + %X = alloca { i32, float } ; <{ i32, float }*> [#uses=1] + %Y = getelementptr { i32, float }* %X, i64 0, i32 0 ; <i32*> [#uses=2] + store i32 0, i32* %Y + %Z = load i32* %Y ; <i32> [#uses=1] + ret i32 %Z } + diff --git a/test/Transforms/ScalarRepl/phinodepromote.ll b/test/Transforms/ScalarRepl/phinodepromote.ll index 4dc7023..4eb8743 100644 --- a/test/Transforms/ScalarRepl/phinodepromote.ll +++ b/test/Transforms/ScalarRepl/phinodepromote.ll @@ -1,8 +1,8 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -simplifycfg -instcombine -mem2reg | llvm-dis | not grep alloca +; RUN: llvm-as < %s | opt -simplifycfg -instcombine -mem2reg | llvm-dis | not grep alloca ; ; This tests to see if mem2reg can promote alloca instructions whose addresses ; are used by PHI nodes that are immediately loaded. The LLVM C++ front-end -; often generates code that looks like this (when it codegen's ?: exprs as +; often generates code that looks like this (when it codegen's ?: exprs as ; lvalues), so handling this simple extension is quite useful. ; ; This testcase is what the following program looks like when it reaches @@ -15,23 +15,20 @@ ; This test checks to make sure the combination of instcombine and mem2reg ; perform the transformation. -int %main() { +define i32 @main() { entry: - %mem_tmp.0 = alloca int - %mem_tmp.1 = alloca int - store int 0, int* %mem_tmp.0 - store int 1, int* %mem_tmp.1 - %tmp.1.i = load int* %mem_tmp.1 - %tmp.3.i = load int* %mem_tmp.0 - %tmp.4.i = setle int %tmp.1.i, %tmp.3.i - br bool %tmp.4.i, label %cond_true.i, label %cond_continue.i - -cond_true.i: - br label %cond_continue.i - -cond_continue.i: - %mem_tmp.i.0 = phi int* [ %mem_tmp.1, %cond_true.i ], [ %mem_tmp.0, %entry ] - %tmp.3 = load int* %mem_tmp.i.0 - ret int %tmp.3 + %mem_tmp.0 = alloca i32 ; <i32*> [#uses=3] + %mem_tmp.1 = alloca i32 ; <i32*> [#uses=3] + store i32 0, i32* %mem_tmp.0 + store i32 1, i32* %mem_tmp.1 + %tmp.1.i = load i32* %mem_tmp.1 ; <i32> [#uses=1] + %tmp.3.i = load i32* %mem_tmp.0 ; <i32> [#uses=1] + %tmp.4.i = icmp sle i32 %tmp.1.i, %tmp.3.i ; <i1> [#uses=1] + br i1 %tmp.4.i, label %cond_true.i, label %cond_continue.i +cond_true.i: ; preds = %entry + br label %cond_continue.i +cond_continue.i: ; preds = %cond_true.i, %entry + %mem_tmp.i.0 = phi i32* [ %mem_tmp.1, %cond_true.i ], [ %mem_tmp.0, %entry ] ; <i32*> [#uses=1] + %tmp.3 = load i32* %mem_tmp.i.0 ; <i32> [#uses=1] + ret i32 %tmp.3 } - diff --git a/test/Transforms/ScalarRepl/select_promote.ll b/test/Transforms/ScalarRepl/select_promote.ll index a7a325c..901fa90 100644 --- a/test/Transforms/ScalarRepl/select_promote.ll +++ b/test/Transforms/ScalarRepl/select_promote.ll @@ -1,18 +1,18 @@ ; Test promotion of loads that use the result of a select instruction. This ; should be simplified by the instcombine pass. -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -mem2reg | llvm-dis | not grep alloca +; RUN: llvm-as < %s | opt -instcombine -mem2reg | llvm-dis | not grep alloca -int %main() { - %mem_tmp.0 = alloca int ; <int*> [#uses=3] - %mem_tmp.1 = alloca int ; <int*> [#uses=3] - store int 0, int* %mem_tmp.0 - store int 1, int* %mem_tmp.1 - %tmp.1.i = load int* %mem_tmp.1 ; <int> [#uses=1] - %tmp.3.i = load int* %mem_tmp.0 ; <int> [#uses=1] - %tmp.4.i = setle int %tmp.1.i, %tmp.3.i ; <bool> [#uses=1] - %mem_tmp.i.0 = select bool %tmp.4.i, int* %mem_tmp.1, int* %mem_tmp.0 ; <int*> [#uses=1] - %tmp.3 = load int* %mem_tmp.i.0 ; <int> [#uses=1] - ret int %tmp.3 +define i32 @main() { + %mem_tmp.0 = alloca i32 ; <i32*> [#uses=3] + %mem_tmp.1 = alloca i32 ; <i32*> [#uses=3] + store i32 0, i32* %mem_tmp.0 + store i32 1, i32* %mem_tmp.1 + %tmp.1.i = load i32* %mem_tmp.1 ; <i32> [#uses=1] + %tmp.3.i = load i32* %mem_tmp.0 ; <i32> [#uses=1] + %tmp.4.i = icmp sle i32 %tmp.1.i, %tmp.3.i ; <i1> [#uses=1] + %mem_tmp.i.0 = select i1 %tmp.4.i, i32* %mem_tmp.1, i32* %mem_tmp.0 ; <i32*> [#uses=1] + %tmp.3 = load i32* %mem_tmp.i.0 ; <i32> [#uses=1] + ret i32 %tmp.3 } diff --git a/test/Transforms/ScalarRepl/sroa_two.ll b/test/Transforms/ScalarRepl/sroa_two.ll index fa04492..e0ea2bc 100644 --- a/test/Transforms/ScalarRepl/sroa_two.ll +++ b/test/Transforms/ScalarRepl/sroa_two.ll @@ -1,16 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis -implementation - -int %test(int %X) { - %Arr = alloca [2 x int] - %tmp.0 = getelementptr [2 x int]* %Arr, int 0, int 0 - store int 1, int* %tmp.0 - %tmp.1 = getelementptr [2 x int]* %Arr, int 0, int 1 - store int 2, int* %tmp.1 - - ;; This should turn into a select instruction. - %tmp.3 = getelementptr [2 x int]* %Arr, int 0, int %X - %tmp.4 = load int* %tmp.3 - ret int %tmp.4 +define i32 @test(i32 %X) { + %Arr = alloca [2 x i32] ; <[2 x i32]*> [#uses=3] + %tmp.0 = getelementptr [2 x i32]* %Arr, i32 0, i32 0 ; <i32*> [#uses=1] + store i32 1, i32* %tmp.0 + %tmp.1 = getelementptr [2 x i32]* %Arr, i32 0, i32 1 ; <i32*> [#uses=1] + store i32 2, i32* %tmp.1 + %tmp.3 = getelementptr [2 x i32]* %Arr, i32 0, i32 %X ; <i32*> [#uses=1] + %tmp.4 = load i32* %tmp.3 ; <i32> [#uses=1] + ret i32 %tmp.4 } + diff --git a/test/Transforms/ScalarRepl/union-fp-int.ll b/test/Transforms/ScalarRepl/union-fp-int.ll index c8eaeea..1c3b18b 100644 --- a/test/Transforms/ScalarRepl/union-fp-int.ll +++ b/test/Transforms/ScalarRepl/union-fp-int.ll @@ -1,14 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ ; RUN: not grep alloca -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ ; RUN: grep {bitcast.*float.*i32} -implementation - -int %test(float %X) { - %X_addr = alloca float - store float %X, float* %X_addr - %X_addr = bitcast float* %X_addr to int* - %tmp = load int* %X_addr - ret int %tmp +define i32 @test(float %X) { + %X_addr = alloca float ; <float*> [#uses=2] + store float %X, float* %X_addr + %X_addr.upgrd.1 = bitcast float* %X_addr to i32* ; <i32*> [#uses=1] + %tmp = load i32* %X_addr.upgrd.1 ; <i32> [#uses=1] + ret i32 %tmp } + diff --git a/test/Transforms/ScalarRepl/union-packed.ll b/test/Transforms/ScalarRepl/union-packed.ll index 0985f0c..10d8a5d 100644 --- a/test/Transforms/ScalarRepl/union-packed.ll +++ b/test/Transforms/ScalarRepl/union-packed.ll @@ -1,14 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ ; RUN: not grep alloca -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ ; RUN: grep bitcast -target endian = little - -<4 x int> %test(<4 x float> %X) { - %X_addr = alloca <4 x float> - store <4 x float> %X, <4 x float>* %X_addr - %X_addr = bitcast <4 x float>* %X_addr to <4 x int>* - %tmp = load <4 x int>* %X_addr - ret <4 x int> %tmp +define <4 x i32> @test(<4 x float> %X) { + %X_addr = alloca <4 x float> ; <<4 x float>*> [#uses=2] + store <4 x float> %X, <4 x float>* %X_addr + %X_addr.upgrd.1 = bitcast <4 x float>* %X_addr to <4 x i32>* ; <<4 x i32>*> [#uses=1] + %tmp = load <4 x i32>* %X_addr.upgrd.1 ; <<4 x i32>> [#uses=1] + ret <4 x i32> %tmp } + diff --git a/test/Transforms/ScalarRepl/union-pointer.ll b/test/Transforms/ScalarRepl/union-pointer.ll index a9666d2..269b4b9 100644 --- a/test/Transforms/ScalarRepl/union-pointer.ll +++ b/test/Transforms/ScalarRepl/union-pointer.ll @@ -1,46 +1,41 @@ ; PR892 -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ ; RUN: not grep alloca -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | grep {ret i8} +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {ret i8} -target endian = little -target pointersize = 32 +target datalayout = "e-p:32:32" target triple = "i686-apple-darwin8.7.2" - -%struct.Val = type { int*, int } + %struct.Val = type { i32*, i32 } -implementation ; Functions: - -sbyte* %test(short* %X) { - %X_addr = alloca short* - store short* %X, short** %X_addr - %X_addr = cast short** %X_addr to sbyte** - %tmp = load sbyte** %X_addr - ret sbyte* %tmp +define i8* @test(i16* %X) { + %X_addr = alloca i16* ; <i16**> [#uses=2] + store i16* %X, i16** %X_addr + %X_addr.upgrd.1 = bitcast i16** %X_addr to i8** ; <i8**> [#uses=1] + %tmp = load i8** %X_addr.upgrd.1 ; <i8*> [#uses=1] + ret i8* %tmp } -void %test2(long %Op.0) { - %tmp = alloca %struct.Val, align 8 - %tmp1 = alloca %struct.Val, align 8 - %tmp = call ulong %_Z3foov( ) - %tmp1 = cast %struct.Val* %tmp1 to ulong* - store ulong %tmp, ulong* %tmp1 - %tmp = getelementptr %struct.Val* %tmp, int 0, uint 0 - %tmp2 = getelementptr %struct.Val* %tmp1, int 0, uint 0 - %tmp = load int** %tmp2 - store int* %tmp, int** %tmp - %tmp3 = getelementptr %struct.Val* %tmp, int 0, uint 1 - %tmp4 = getelementptr %struct.Val* %tmp1, int 0, uint 1 - %tmp = load int* %tmp4 - store int %tmp, int* %tmp3 - %tmp7 = cast %struct.Val* %tmp to { long }* - %tmp8 = getelementptr { long }* %tmp7, int 0, uint 0 - %tmp9 = load long* %tmp8 - call void %_Z3bar3ValS_( long %Op.0, long %tmp9 ) - ret void +define void @test2(i64 %Op.0) { + %tmp = alloca %struct.Val, align 8 ; <%struct.Val*> [#uses=3] + %tmp1 = alloca %struct.Val, align 8 ; <%struct.Val*> [#uses=3] + %tmp.upgrd.2 = call i64 @_Z3foov( ) ; <i64> [#uses=1] + %tmp1.upgrd.3 = bitcast %struct.Val* %tmp1 to i64* ; <i64*> [#uses=1] + store i64 %tmp.upgrd.2, i64* %tmp1.upgrd.3 + %tmp.upgrd.4 = getelementptr %struct.Val* %tmp, i32 0, i32 0 ; <i32**> [#uses=1] + %tmp2 = getelementptr %struct.Val* %tmp1, i32 0, i32 0 ; <i32**> [#uses=1] + %tmp.upgrd.5 = load i32** %tmp2 ; <i32*> [#uses=1] + store i32* %tmp.upgrd.5, i32** %tmp.upgrd.4 + %tmp3 = getelementptr %struct.Val* %tmp, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp4 = getelementptr %struct.Val* %tmp1, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp.upgrd.6 = load i32* %tmp4 ; <i32> [#uses=1] + store i32 %tmp.upgrd.6, i32* %tmp3 + %tmp7 = bitcast %struct.Val* %tmp to { i64 }* ; <{ i64 }*> [#uses=1] + %tmp8 = getelementptr { i64 }* %tmp7, i32 0, i32 0 ; <i64*> [#uses=1] + %tmp9 = load i64* %tmp8 ; <i64> [#uses=1] + call void @_Z3bar3ValS_( i64 %Op.0, i64 %tmp9 ) + ret void } -declare ulong %_Z3foov() - -declare void %_Z3bar3ValS_(long, long) +declare i64 @_Z3foov() +declare void @_Z3bar3ValS_(i64, i64) diff --git a/test/Transforms/ScalarRepl/vector_promote.ll b/test/Transforms/ScalarRepl/vector_promote.ll index 73e2c64..ec22f64 100644 --- a/test/Transforms/ScalarRepl/vector_promote.ll +++ b/test/Transforms/ScalarRepl/vector_promote.ll @@ -1,55 +1,55 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl | llvm-dis | \ +; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \ ; RUN: not grep alloca +; END. -void %test(<4 x float>* %F, float %f) { +define void @test(<4 x float>* %F, float %f) { entry: - %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=3] - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] - %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] - store <4 x float> %tmp3, <4 x float>* %G - %G = getelementptr <4 x float>* %G, int 0, int 0 ; <float*> [#uses=1] - store float %f, float* %G - %tmp4 = load <4 x float>* %G ; <<4 x float>> [#uses=2] - %tmp6 = add <4 x float> %tmp4, %tmp4 ; <<4 x float>> [#uses=1] - store <4 x float> %tmp6, <4 x float>* %F - ret void + %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=3] + %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] + store <4 x float> %tmp3, <4 x float>* %G + %G.upgrd.1 = getelementptr <4 x float>* %G, i32 0, i32 0 ; <float*> [#uses=1] + store float %f, float* %G.upgrd.1 + %tmp4 = load <4 x float>* %G ; <<4 x float>> [#uses=2] + %tmp6 = add <4 x float> %tmp4, %tmp4 ; <<4 x float>> [#uses=1] + store <4 x float> %tmp6, <4 x float>* %F + ret void } -void %test2(<4 x float>* %F, float %f) { +define void @test2(<4 x float>* %F, float %f) { entry: - %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=3] - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] - %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] - store <4 x float> %tmp3, <4 x float>* %G - %tmp = getelementptr <4 x float>* %G, int 0, int 2 ; <float*> [#uses=1] - store float %f, float* %tmp - %tmp4 = load <4 x float>* %G ; <<4 x float>> [#uses=2] - %tmp6 = add <4 x float> %tmp4, %tmp4 ; <<4 x float>> [#uses=1] - store <4 x float> %tmp6, <4 x float>* %F - ret void + %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=3] + %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] + store <4 x float> %tmp3, <4 x float>* %G + %tmp.upgrd.2 = getelementptr <4 x float>* %G, i32 0, i32 2 ; <float*> [#uses=1] + store float %f, float* %tmp.upgrd.2 + %tmp4 = load <4 x float>* %G ; <<4 x float>> [#uses=2] + %tmp6 = add <4 x float> %tmp4, %tmp4 ; <<4 x float>> [#uses=1] + store <4 x float> %tmp6, <4 x float>* %F + ret void } -void %test3(<4 x float>* %F, float* %f) { +define void @test3(<4 x float>* %F, float* %f) { entry: - %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=2] - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] - %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] - store <4 x float> %tmp3, <4 x float>* %G - %tmp = getelementptr <4 x float>* %G, int 0, int 2 ; <float*> [#uses=1] - %tmp = load float* %tmp ; <float> [#uses=1] - store float %tmp, float* %f - ret void + %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=2] + %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] + store <4 x float> %tmp3, <4 x float>* %G + %tmp.upgrd.3 = getelementptr <4 x float>* %G, i32 0, i32 2 ; <float*> [#uses=1] + %tmp.upgrd.4 = load float* %tmp.upgrd.3 ; <float> [#uses=1] + store float %tmp.upgrd.4, float* %f + ret void } -void %test4(<4 x float>* %F, float* %f) { +define void @test4(<4 x float>* %F, float* %f) { entry: - %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=2] - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] - %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] - store <4 x float> %tmp3, <4 x float>* %G - %G = getelementptr <4 x float>* %G, int 0, int 0 ; <float*> [#uses=1] - %tmp = load float* %G ; <float> [#uses=1] - store float %tmp, float* %f - ret void + %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=2] + %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] + store <4 x float> %tmp3, <4 x float>* %G + %G.upgrd.5 = getelementptr <4 x float>* %G, i32 0, i32 0 ; <float*> [#uses=1] + %tmp.upgrd.6 = load float* %G.upgrd.5 ; <float> [#uses=1] + store float %tmp.upgrd.6, float* %f + ret void } - |