diff options
Diffstat (limited to 'test/CodeGen/PowerPC')
-rw-r--r-- | test/CodeGen/PowerPC/2006-01-20-ShiftPartsCrash.ll | 14 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/and-elim.ll | 3 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/branch-opt.ll | 17 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/rotl.ll | 20 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/small-arguments.ll | 10 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/vec_spat.ll | 8 |
6 files changed, 33 insertions, 39 deletions
diff --git a/test/CodeGen/PowerPC/2006-01-20-ShiftPartsCrash.ll b/test/CodeGen/PowerPC/2006-01-20-ShiftPartsCrash.ll index 8edb96284e..7700459328 100644 --- a/test/CodeGen/PowerPC/2006-01-20-ShiftPartsCrash.ll +++ b/test/CodeGen/PowerPC/2006-01-20-ShiftPartsCrash.ll @@ -1,16 +1,16 @@ ; RUN: llvm-upgrade < %s | llvm-as | llc void %iterative_hash_host_wide_int() { - %zero = alloca int ; <int*> [#uses=2] - %b = alloca uint ; <uint*> [#uses=1] + %zero = alloca int ; <int*> [#uses=2] + %b = alloca uint ; <uint*> [#uses=1] store int 0, int* %zero - %tmp = load int* %zero ; <int> [#uses=1] + %tmp = load int* %zero ; <int> [#uses=1] %tmp5 = cast int %tmp to uint ; <uint> [#uses=1] - %tmp6 = add uint %tmp5, 32 ; <uint> [#uses=1] - %tmp6 = cast uint %tmp6 to int ; <int> [#uses=1] - %tmp7 = load long* null ; <long> [#uses=1] + %tmp6.u = add uint %tmp5, 32 ; <uint> [#uses=1] + %tmp6 = cast uint %tmp6.u to int ; <int> [#uses=1] + %tmp7 = load long* null ; <long> [#uses=1] %tmp6 = cast int %tmp6 to ubyte ; <ubyte> [#uses=1] - %tmp8 = shr long %tmp7, ubyte %tmp6 ; <long> [#uses=1] + %tmp8 = shr long %tmp7, ubyte %tmp6 ; <long> [#uses=1] %tmp8 = cast long %tmp8 to uint ; <uint> [#uses=1] store uint %tmp8, uint* %b unreachable diff --git a/test/CodeGen/PowerPC/and-elim.ll b/test/CodeGen/PowerPC/and-elim.ll index ae1f57d07d..c866d6e097 100644 --- a/test/CodeGen/PowerPC/and-elim.ll +++ b/test/CodeGen/PowerPC/and-elim.ll @@ -10,7 +10,8 @@ void %test(ubyte* %P) { ret void } -ushort %test2(ushort %crc) { ; No and's should be needed for the ushorts here. +ushort @zext %test2(ushort @zext %crc) { + ; No and's should be needed for the ushorts here. %tmp.1 = shr ushort %crc, ubyte 1 %tmp.7 = xor ushort %tmp.1, 40961 ret ushort %tmp.7 diff --git a/test/CodeGen/PowerPC/branch-opt.ll b/test/CodeGen/PowerPC/branch-opt.ll index 7f40a2d866..1f94169cb9 100644 --- a/test/CodeGen/PowerPC/branch-opt.ll +++ b/test/CodeGen/PowerPC/branch-opt.ll @@ -9,10 +9,10 @@ implementation ; Functions: void %foo(int %W, int %X, int %Y, int %Z) { entry: - %X = cast int %X to uint ; <uint> [#uses=1] - %Y = cast int %Y to uint ; <uint> [#uses=1] - %Z = cast int %Z to uint ; <uint> [#uses=1] - %W = cast int %W to uint ; <uint> [#uses=1] + %X.u = cast int %X to uint ; <uint> [#uses=1] + %Y.u = cast int %Y to uint ; <uint> [#uses=1] + %Z.u = cast int %Z to uint ; <uint> [#uses=1] + %W.u = cast int %W to uint ; <uint> [#uses=1] %tmp1 = and int %W, 1 ; <int> [#uses=1] %tmp1 = seteq int %tmp1, 0 ; <bool> [#uses=1] br bool %tmp1, label %cond_false, label %bb5 @@ -21,7 +21,7 @@ bb: ; preds = %bb5, %bb %indvar77 = phi uint [ %indvar.next78, %bb ], [ 0, %bb5 ] ; <uint> [#uses=1] %tmp2 = tail call int (...)* %bar( ) ; <int> [#uses=0] %indvar.next78 = add uint %indvar77, 1 ; <uint> [#uses=2] - %exitcond79 = seteq uint %indvar.next78, %X ; <bool> [#uses=1] + %exitcond79 = seteq uint %indvar.next78, %X.u ; <bool> [#uses=1] br bool %exitcond79, label %cond_next48, label %bb bb5: ; preds = %entry @@ -37,7 +37,7 @@ bb12: ; preds = %bb16, %bb12 %indvar72 = phi uint [ %indvar.next73, %bb12 ], [ 0, %bb16 ] ; <uint> [#uses=1] %tmp13 = tail call int (...)* %bar( ) ; <int> [#uses=0] %indvar.next73 = add uint %indvar72, 1 ; <uint> [#uses=2] - %exitcond74 = seteq uint %indvar.next73, %Y ; <bool> [#uses=1] + %exitcond74 = seteq uint %indvar.next73, %Y.u ; <bool> [#uses=1] br bool %exitcond74, label %cond_next48, label %bb12 bb16: ; preds = %cond_false @@ -53,7 +53,7 @@ bb25: ; preds = %bb29, %bb25 %indvar67 = phi uint [ %indvar.next68, %bb25 ], [ 0, %bb29 ] ; <uint> [#uses=1] %tmp26 = tail call int (...)* %bar( ) ; <int> [#uses=0] %indvar.next68 = add uint %indvar67, 1 ; <uint> [#uses=2] - %exitcond69 = seteq uint %indvar.next68, %Z ; <bool> [#uses=1] + %exitcond69 = seteq uint %indvar.next68, %Z.u ; <bool> [#uses=1] br bool %exitcond69, label %cond_next48, label %bb25 bb29: ; preds = %cond_false20 @@ -72,9 +72,8 @@ bb38: ; preds = %bb42 bb42: ; preds = %cond_false33, %bb38 %indvar = phi uint [ %indvar.next, %bb38 ], [ 0, %cond_false33 ] ; <uint> [#uses=3] - %indvar = cast uint %indvar to int ; <int> [#uses=1] %W_addr.0 = sub int %W, %indvar ; <int> [#uses=1] - %exitcond = seteq uint %indvar, %W ; <bool> [#uses=1] + %exitcond = seteq uint %indvar, %W.u ; <bool> [#uses=1] br bool %exitcond, label %cond_next48, label %bb38 cond_next48: ; preds = %bb, %bb12, %bb25, %bb42, %cond_false33, %bb29, %bb16, %bb5 diff --git a/test/CodeGen/PowerPC/rotl.ll b/test/CodeGen/PowerPC/rotl.ll index fc3a6bc6ac..e2045feb92 100644 --- a/test/CodeGen/PowerPC/rotl.ll +++ b/test/CodeGen/PowerPC/rotl.ll @@ -7,12 +7,11 @@ implementation ; Functions: int %rotlw(uint %x, int %sh) { entry: %tmp.3 = cast int %sh to ubyte ; <ubyte> [#uses=1] - %x = cast uint %x to int ; <int> [#uses=1] + %x.s = cast uint %x to int ; <int> [#uses=1] %tmp.7 = sub int 32, %sh ; <int> [#uses=1] %tmp.9 = cast int %tmp.7 to ubyte ; <ubyte> [#uses=1] %tmp.10 = shr uint %x, ubyte %tmp.9 ; <uint> [#uses=1] - %tmp.4 = shl int %x, ubyte %tmp.3 ; <int> [#uses=1] - %tmp.10 = cast uint %tmp.10 to int ; <int> [#uses=1] + %tmp.4 = shl int %x.s, ubyte %tmp.3 ; <int> [#uses=1] %tmp.12 = or int %tmp.10, %tmp.4 ; <int> [#uses=1] ret int %tmp.12 } @@ -23,19 +22,17 @@ entry: %tmp.4 = shr uint %x, ubyte %tmp.3 ; <uint> [#uses=1] %tmp.7 = sub int 32, %sh ; <int> [#uses=1] %tmp.9 = cast int %tmp.7 to ubyte ; <ubyte> [#uses=1] - %x = cast uint %x to int ; <int> [#uses=1] - %tmp.4 = cast uint %tmp.4 to int ; <int> [#uses=1] - %tmp.10 = shl int %x, ubyte %tmp.9 ; <int> [#uses=1] + %x.s = cast uint %x to int ; <int> [#uses=1] + %tmp.10 = shl int %x.s, ubyte %tmp.9 ; <int> [#uses=1] %tmp.12 = or int %tmp.4, %tmp.10 ; <int> [#uses=1] ret int %tmp.12 } int %rotlwi(uint %x) { entry: - %x = cast uint %x to int ; <int> [#uses=1] + %x.s = cast uint %x to int ; <int> [#uses=1] %tmp.7 = shr uint %x, ubyte 27 ; <uint> [#uses=1] - %tmp.3 = shl int %x, ubyte 5 ; <int> [#uses=1] - %tmp.7 = cast uint %tmp.7 to int ; <int> [#uses=1] + %tmp.3 = shl int %x.s, ubyte 5 ; <int> [#uses=1] %tmp.9 = or int %tmp.3, %tmp.7 ; <int> [#uses=1] ret int %tmp.9 } @@ -43,9 +40,8 @@ entry: int %rotrwi(uint %x) { entry: %tmp.3 = shr uint %x, ubyte 5 ; <uint> [#uses=1] - %x = cast uint %x to int ; <int> [#uses=1] - %tmp.3 = cast uint %tmp.3 to int ; <int> [#uses=1] - %tmp.7 = shl int %x, ubyte 27 ; <int> [#uses=1] + %x.s = cast uint %x to int ; <int> [#uses=1] + %tmp.7 = shl int %x.s, ubyte 27 ; <int> [#uses=1] %tmp.9 = or int %tmp.3, %tmp.7 ; <int> [#uses=1] ret int %tmp.9 } diff --git a/test/CodeGen/PowerPC/small-arguments.ll b/test/CodeGen/PowerPC/small-arguments.ll index 40217f6556..aa0d5b6d1b 100644 --- a/test/CodeGen/PowerPC/small-arguments.ll +++ b/test/CodeGen/PowerPC/small-arguments.ll @@ -1,15 +1,14 @@ - ; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 && ; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | not grep 'extsh\|rlwinm' -declare short %foo() +declare short @sext %foo() -int %test1(short %X) { +int %test1(short @sext %X) { %Y = cast short %X to int ;; dead ret int %Y } -int %test2(ushort %X) { +int %test2(ushort @zext %X) { %Y = cast ushort %X to int %Z = and int %Y, 65535 ;; dead ret int %Z @@ -48,8 +47,7 @@ uint %test6(uint* %P) { ret uint %tmp.2 } -ushort %test7(float %a) { +ushort @zext %test7(float %a) { %tmp.1 = cast float %a to ushort ret ushort %tmp.1 } - diff --git a/test/CodeGen/PowerPC/vec_spat.ll b/test/CodeGen/PowerPC/vec_spat.ll index fb25402b17..6691995357 100644 --- a/test/CodeGen/PowerPC/vec_spat.ll +++ b/test/CodeGen/PowerPC/vec_spat.ll @@ -62,10 +62,10 @@ void %splat_h(short %tmp, <16 x ubyte>* %dst) { void %spltish(<16 x ubyte>* %A, <16 x ubyte>* %B) { ; Gets converted to 16 x ubyte %tmp = load <16 x ubyte>* %B - %tmp = cast <16 x ubyte> %tmp to <16 x sbyte> - %tmp4 = sub <16 x sbyte> %tmp, cast (<8 x short> < short 15, short 15, short 15, short 15, short 15, short 15, short 15, short 15 > to <16 x sbyte>) - %tmp4 = cast <16 x sbyte> %tmp4 to <16 x ubyte> - store <16 x ubyte> %tmp4, <16 x ubyte>* %A + %tmp.s = cast <16 x ubyte> %tmp to <16 x sbyte> + %tmp4 = sub <16 x sbyte> %tmp.s, cast (<8 x short> < short 15, short 15, short 15, short 15, short 15, short 15, short 15, short 15 > to <16 x sbyte>) + %tmp4.u = cast <16 x sbyte> %tmp4 to <16 x ubyte> + store <16 x ubyte> %tmp4.u, <16 x ubyte>* %A ret void } |