diff options
Diffstat (limited to 'llvm/test/CodeGen/PowerPC/inc-of-add.ll')
| -rw-r--r-- | llvm/test/CodeGen/PowerPC/inc-of-add.ll | 401 |
1 files changed, 196 insertions, 205 deletions
diff --git a/llvm/test/CodeGen/PowerPC/inc-of-add.ll b/llvm/test/CodeGen/PowerPC/inc-of-add.ll index 67a750aa187..6ddf95530d7 100644 --- a/llvm/test/CodeGen/PowerPC/inc-of-add.ll +++ b/llvm/test/CodeGen/PowerPC/inc-of-add.ll @@ -64,89 +64,89 @@ define <16 x i8> @vector_i128_i8(<16 x i8> %x, <16 x i8> %y) nounwind { ; PPC32-LABEL: vector_i128_i8: ; PPC32: # %bb.0: ; PPC32-NEXT: stwu 1, -64(1) -; PPC32-NEXT: lbz 12, 175(1) -; PPC32-NEXT: lbz 0, 111(1) -; PPC32-NEXT: lbz 4, 171(1) -; PPC32-NEXT: lbz 11, 107(1) ; PPC32-NEXT: stw 21, 20(1) # 4-byte Folded Spill -; PPC32-NEXT: stw 22, 24(1) # 4-byte Folded Spill -; PPC32-NEXT: stw 23, 28(1) # 4-byte Folded Spill -; PPC32-NEXT: add 12, 0, 12 -; PPC32-NEXT: lbz 22, 167(1) -; PPC32-NEXT: lbz 21, 103(1) -; PPC32-NEXT: lbz 23, 163(1) -; PPC32-NEXT: lbz 0, 99(1) +; PPC32-NEXT: lbz 4, 119(1) +; PPC32-NEXT: lbz 11, 115(1) ; PPC32-NEXT: stw 24, 32(1) # 4-byte Folded Spill -; PPC32-NEXT: add 4, 11, 4 -; PPC32-NEXT: lbz 24, 159(1) -; PPC32-NEXT: lbz 11, 95(1) -; PPC32-NEXT: stw 25, 36(1) # 4-byte Folded Spill -; PPC32-NEXT: add 22, 21, 22 -; PPC32-NEXT: lbz 25, 155(1) -; PPC32-NEXT: lbz 21, 91(1) -; PPC32-NEXT: stw 26, 40(1) # 4-byte Folded Spill -; PPC32-NEXT: add 23, 0, 23 -; PPC32-NEXT: lbz 26, 151(1) -; PPC32-NEXT: lbz 0, 87(1) -; PPC32-NEXT: stw 27, 44(1) # 4-byte Folded Spill -; PPC32-NEXT: add 11, 11, 24 -; PPC32-NEXT: lbz 27, 147(1) +; PPC32-NEXT: stw 23, 28(1) # 4-byte Folded Spill +; PPC32-NEXT: add 4, 4, 6 +; PPC32-NEXT: lbz 21, 123(1) +; PPC32-NEXT: lbz 6, 131(1) +; PPC32-NEXT: add 5, 11, 5 +; PPC32-NEXT: lbz 11, 127(1) +; PPC32-NEXT: add 7, 21, 7 +; PPC32-NEXT: lbz 21, 135(1) ; PPC32-NEXT: lbz 24, 83(1) -; PPC32-NEXT: addi 4, 4, 1 -; PPC32-NEXT: stw 28, 48(1) # 4-byte Folded Spill -; PPC32-NEXT: stw 29, 52(1) # 4-byte Folded Spill +; PPC32-NEXT: lbz 23, 79(1) +; PPC32-NEXT: add 6, 6, 9 +; PPC32-NEXT: add 10, 21, 10 +; PPC32-NEXT: lbz 21, 147(1) +; PPC32-NEXT: lbz 9, 143(1) +; PPC32-NEXT: stw 22, 24(1) # 4-byte Folded Spill +; PPC32-NEXT: add 8, 11, 8 +; PPC32-NEXT: lbz 22, 75(1) +; PPC32-NEXT: lbz 11, 139(1) +; PPC32-NEXT: stw 27, 44(1) # 4-byte Folded Spill +; PPC32-NEXT: add 24, 21, 24 +; PPC32-NEXT: lbz 27, 95(1) +; PPC32-NEXT: lbz 21, 159(1) +; PPC32-NEXT: stw 26, 40(1) # 4-byte Folded Spill +; PPC32-NEXT: add 9, 9, 23 +; PPC32-NEXT: lbz 26, 91(1) +; PPC32-NEXT: lbz 23, 155(1) +; PPC32-NEXT: stw 25, 36(1) # 4-byte Folded Spill +; PPC32-NEXT: add 11, 11, 22 +; PPC32-NEXT: lbz 25, 87(1) +; PPC32-NEXT: lbz 22, 151(1) +; PPC32-NEXT: lbz 12, 111(1) +; PPC32-NEXT: add 27, 21, 27 +; PPC32-NEXT: lbz 21, 175(1) ; PPC32-NEXT: stw 30, 56(1) # 4-byte Folded Spill -; PPC32-NEXT: add 25, 21, 25 -; PPC32-NEXT: lbz 28, 143(1) -; PPC32-NEXT: lbz 21, 79(1) -; PPC32-NEXT: stb 4, 14(3) -; PPC32-NEXT: addi 4, 22, 1 -; PPC32-NEXT: lbz 29, 139(1) -; PPC32-NEXT: add 26, 0, 26 -; PPC32-NEXT: lbz 0, 75(1) -; PPC32-NEXT: stb 4, 13(3) -; PPC32-NEXT: addi 4, 23, 1 -; PPC32-NEXT: add 27, 24, 27 -; PPC32-NEXT: lbz 24, 135(1) -; PPC32-NEXT: stb 4, 12(3) -; PPC32-NEXT: addi 4, 11, 1 -; PPC32-NEXT: stb 4, 11(3) -; PPC32-NEXT: addi 4, 25, 1 -; PPC32-NEXT: add 28, 21, 28 -; PPC32-NEXT: lbz 21, 131(1) -; PPC32-NEXT: stb 4, 10(3) -; PPC32-NEXT: addi 4, 26, 1 -; PPC32-NEXT: add 29, 0, 29 -; PPC32-NEXT: lbz 0, 127(1) -; PPC32-NEXT: stb 4, 9(3) -; PPC32-NEXT: addi 4, 27, 1 -; PPC32-NEXT: add 10, 10, 24 -; PPC32-NEXT: lbz 24, 123(1) -; PPC32-NEXT: stb 4, 8(3) -; PPC32-NEXT: addi 4, 28, 1 -; PPC32-NEXT: lbz 30, 119(1) -; PPC32-NEXT: stb 4, 7(3) -; PPC32-NEXT: addi 4, 29, 1 -; PPC32-NEXT: add 9, 9, 21 -; PPC32-NEXT: lbz 21, 115(1) -; PPC32-NEXT: stb 4, 6(3) -; PPC32-NEXT: addi 4, 10, 1 -; PPC32-NEXT: add 8, 8, 0 -; PPC32-NEXT: stb 4, 5(3) -; PPC32-NEXT: addi 4, 9, 1 -; PPC32-NEXT: add 7, 7, 24 -; PPC32-NEXT: stb 4, 4(3) -; PPC32-NEXT: addi 4, 8, 1 -; PPC32-NEXT: add 6, 6, 30 -; PPC32-NEXT: stb 4, 3(3) -; PPC32-NEXT: addi 4, 7, 1 -; PPC32-NEXT: add 5, 5, 21 -; PPC32-NEXT: stb 4, 2(3) -; PPC32-NEXT: addi 4, 6, 1 +; PPC32-NEXT: lbz 0, 107(1) +; PPC32-NEXT: stw 29, 52(1) # 4-byte Folded Spill +; PPC32-NEXT: add 26, 23, 26 +; PPC32-NEXT: lbz 30, 171(1) +; PPC32-NEXT: lbz 29, 103(1) +; PPC32-NEXT: lbz 23, 167(1) +; PPC32-NEXT: stw 28, 48(1) # 4-byte Folded Spill +; PPC32-NEXT: add 25, 22, 25 +; PPC32-NEXT: lbz 28, 99(1) +; PPC32-NEXT: lbz 22, 163(1) +; PPC32-NEXT: add 12, 21, 12 +; PPC32-NEXT: add 30, 30, 0 ; PPC32-NEXT: addi 12, 12, 1 +; PPC32-NEXT: add 29, 23, 29 +; PPC32-NEXT: stb 12, 15(3) +; PPC32-NEXT: addi 12, 30, 1 +; PPC32-NEXT: add 28, 22, 28 +; PPC32-NEXT: stb 12, 14(3) +; PPC32-NEXT: addi 12, 29, 1 +; PPC32-NEXT: stb 12, 13(3) +; PPC32-NEXT: addi 12, 28, 1 +; PPC32-NEXT: stb 12, 12(3) +; PPC32-NEXT: addi 12, 27, 1 +; PPC32-NEXT: stb 12, 11(3) +; PPC32-NEXT: addi 12, 26, 1 +; PPC32-NEXT: addi 9, 9, 1 +; PPC32-NEXT: addi 6, 6, 1 +; PPC32-NEXT: stb 12, 10(3) +; PPC32-NEXT: addi 12, 25, 1 +; PPC32-NEXT: stb 9, 7(3) +; PPC32-NEXT: addi 9, 11, 1 +; PPC32-NEXT: stb 6, 4(3) +; PPC32-NEXT: addi 6, 8, 1 +; PPC32-NEXT: addi 4, 4, 1 +; PPC32-NEXT: stb 12, 9(3) +; PPC32-NEXT: addi 12, 24, 1 +; PPC32-NEXT: stb 9, 6(3) +; PPC32-NEXT: addi 9, 10, 1 +; PPC32-NEXT: stb 6, 3(3) +; PPC32-NEXT: addi 6, 7, 1 ; PPC32-NEXT: stb 4, 1(3) ; PPC32-NEXT: addi 4, 5, 1 -; PPC32-NEXT: stb 12, 15(3) +; PPC32-NEXT: stb 12, 8(3) +; PPC32-NEXT: stb 9, 5(3) +; PPC32-NEXT: stb 6, 2(3) ; PPC32-NEXT: stb 4, 0(3) ; PPC32-NEXT: lwz 30, 56(1) # 4-byte Folded Reload ; PPC32-NEXT: lwz 29, 52(1) # 4-byte Folded Reload @@ -164,73 +164,72 @@ define <16 x i8> @vector_i128_i8(<16 x i8> %x, <16 x i8> %y) nounwind { ; PPC64BE-LABEL: vector_i128_i8: ; PPC64BE: # %bb.0: ; PPC64BE-NEXT: std 21, -88(1) # 8-byte Folded Spill +; PPC64BE-NEXT: lbz 21, 207(1) +; PPC64BE-NEXT: lbz 11, 199(1) +; PPC64BE-NEXT: lbz 12, 191(1) +; PPC64BE-NEXT: std 23, -72(1) # 8-byte Folded Spill ; PPC64BE-NEXT: std 22, -80(1) # 8-byte Folded Spill +; PPC64BE-NEXT: std 26, -48(1) # 8-byte Folded Spill +; PPC64BE-NEXT: std 2, -96(1) # 8-byte Folded Spill +; PPC64BE-NEXT: std 25, -56(1) # 8-byte Folded Spill +; PPC64BE-NEXT: std 24, -64(1) # 8-byte Folded Spill +; PPC64BE-NEXT: std 29, -24(1) # 8-byte Folded Spill ; PPC64BE-NEXT: std 30, -16(1) # 8-byte Folded Spill -; PPC64BE-NEXT: lbz 11, 303(1) -; PPC64BE-NEXT: lbz 12, 175(1) -; PPC64BE-NEXT: lbz 0, 311(1) -; PPC64BE-NEXT: lbz 30, 183(1) +; PPC64BE-NEXT: lbz 0, 183(1) +; PPC64BE-NEXT: add 6, 21, 6 +; PPC64BE-NEXT: lbz 21, 231(1) +; PPC64BE-NEXT: add 5, 11, 5 +; PPC64BE-NEXT: lbz 11, 223(1) +; PPC64BE-NEXT: add 4, 12, 4 +; PPC64BE-NEXT: lbz 12, 215(1) +; PPC64BE-NEXT: lbz 23, 127(1) +; PPC64BE-NEXT: add 9, 21, 9 +; PPC64BE-NEXT: lbz 21, 255(1) +; PPC64BE-NEXT: lbz 22, 119(1) +; PPC64BE-NEXT: add 8, 11, 8 +; PPC64BE-NEXT: lbz 11, 247(1) +; PPC64BE-NEXT: add 7, 12, 7 +; PPC64BE-NEXT: lbz 12, 239(1) +; PPC64BE-NEXT: lbz 26, 151(1) +; PPC64BE-NEXT: add 2, 21, 23 +; PPC64BE-NEXT: lbz 23, 279(1) +; PPC64BE-NEXT: lbz 25, 143(1) +; PPC64BE-NEXT: add 11, 11, 22 +; PPC64BE-NEXT: lbz 22, 271(1) +; PPC64BE-NEXT: lbz 24, 135(1) +; PPC64BE-NEXT: add 10, 12, 10 +; PPC64BE-NEXT: lbz 12, 263(1) +; PPC64BE-NEXT: lbz 30, 175(1) +; PPC64BE-NEXT: lbz 29, 303(1) +; PPC64BE-NEXT: add 26, 23, 26 +; PPC64BE-NEXT: lbz 23, 311(1) +; PPC64BE-NEXT: std 28, -32(1) # 8-byte Folded Spill +; PPC64BE-NEXT: add 25, 22, 25 +; PPC64BE-NEXT: lbz 28, 167(1) ; PPC64BE-NEXT: lbz 22, 295(1) -; PPC64BE-NEXT: lbz 21, 167(1) -; PPC64BE-NEXT: std 23, -72(1) # 8-byte Folded Spill -; PPC64BE-NEXT: std 24, -64(1) # 8-byte Folded Spill -; PPC64BE-NEXT: std 25, -56(1) # 8-byte Folded Spill -; PPC64BE-NEXT: std 2, -96(1) # 8-byte Folded Spill -; PPC64BE-NEXT: add 11, 12, 11 -; PPC64BE-NEXT: lbz 25, 271(1) -; PPC64BE-NEXT: lbz 24, 279(1) -; PPC64BE-NEXT: lbz 23, 287(1) -; PPC64BE-NEXT: add 2, 30, 0 -; PPC64BE-NEXT: lbz 0, 159(1) -; PPC64BE-NEXT: lbz 12, 151(1) -; PPC64BE-NEXT: add 30, 21, 22 -; PPC64BE-NEXT: lbz 22, 143(1) -; PPC64BE-NEXT: std 26, -48(1) # 8-byte Folded Spill ; PPC64BE-NEXT: std 27, -40(1) # 8-byte Folded Spill -; PPC64BE-NEXT: std 28, -32(1) # 8-byte Folded Spill -; PPC64BE-NEXT: add 23, 0, 23 -; PPC64BE-NEXT: lbz 28, 247(1) -; PPC64BE-NEXT: lbz 27, 255(1) -; PPC64BE-NEXT: lbz 26, 263(1) -; PPC64BE-NEXT: lbz 0, 135(1) ; PPC64BE-NEXT: add 12, 12, 24 -; PPC64BE-NEXT: lbz 24, 127(1) -; PPC64BE-NEXT: add 25, 22, 25 -; PPC64BE-NEXT: lbz 22, 119(1) -; PPC64BE-NEXT: add 26, 0, 26 -; PPC64BE-NEXT: lbz 0, 239(1) -; PPC64BE-NEXT: add 27, 24, 27 -; PPC64BE-NEXT: lbz 24, 231(1) +; PPC64BE-NEXT: lbz 27, 159(1) +; PPC64BE-NEXT: lbz 24, 287(1) +; PPC64BE-NEXT: add 30, 29, 30 +; PPC64BE-NEXT: add 29, 23, 0 +; PPC64BE-NEXT: addi 0, 29, 1 ; PPC64BE-NEXT: add 28, 22, 28 -; PPC64BE-NEXT: lbz 22, 223(1) +; PPC64BE-NEXT: stb 0, 15(3) +; PPC64BE-NEXT: addi 0, 30, 1 +; PPC64BE-NEXT: add 27, 24, 27 +; PPC64BE-NEXT: stb 0, 14(3) +; PPC64BE-NEXT: addi 0, 28, 1 +; PPC64BE-NEXT: stb 0, 13(3) +; PPC64BE-NEXT: addi 0, 27, 1 +; PPC64BE-NEXT: stb 0, 12(3) +; PPC64BE-NEXT: addi 0, 26, 1 +; PPC64BE-NEXT: addi 12, 12, 1 +; PPC64BE-NEXT: stb 0, 11(3) +; PPC64BE-NEXT: addi 0, 25, 1 +; PPC64BE-NEXT: stb 12, 9(3) +; PPC64BE-NEXT: addi 12, 2, 1 ; PPC64BE-NEXT: addi 11, 11, 1 -; PPC64BE-NEXT: std 29, -24(1) # 8-byte Folded Spill -; PPC64BE-NEXT: stb 11, 14(3) -; PPC64BE-NEXT: addi 11, 30, 1 -; PPC64BE-NEXT: lbz 29, 199(1) -; PPC64BE-NEXT: add 10, 10, 0 -; PPC64BE-NEXT: lbz 0, 215(1) -; PPC64BE-NEXT: add 9, 9, 24 -; PPC64BE-NEXT: lbz 24, 207(1) -; PPC64BE-NEXT: add 8, 8, 22 -; PPC64BE-NEXT: lbz 22, 191(1) -; PPC64BE-NEXT: stb 11, 13(3) -; PPC64BE-NEXT: addi 11, 23, 1 -; PPC64BE-NEXT: stb 11, 12(3) -; PPC64BE-NEXT: addi 11, 12, 1 -; PPC64BE-NEXT: stb 11, 11(3) -; PPC64BE-NEXT: addi 11, 25, 1 -; PPC64BE-NEXT: stb 11, 10(3) -; PPC64BE-NEXT: addi 11, 26, 1 -; PPC64BE-NEXT: add 7, 7, 0 -; PPC64BE-NEXT: add 6, 6, 24 -; PPC64BE-NEXT: add 5, 5, 29 -; PPC64BE-NEXT: add 4, 4, 22 -; PPC64BE-NEXT: stb 11, 9(3) -; PPC64BE-NEXT: addi 11, 27, 1 -; PPC64BE-NEXT: addi 0, 2, 1 -; PPC64BE-NEXT: stb 11, 8(3) -; PPC64BE-NEXT: addi 11, 28, 1 ; PPC64BE-NEXT: addi 10, 10, 1 ; PPC64BE-NEXT: addi 9, 9, 1 ; PPC64BE-NEXT: addi 8, 8, 1 @@ -238,7 +237,8 @@ define <16 x i8> @vector_i128_i8(<16 x i8> %x, <16 x i8> %y) nounwind { ; PPC64BE-NEXT: addi 6, 6, 1 ; PPC64BE-NEXT: addi 5, 5, 1 ; PPC64BE-NEXT: addi 4, 4, 1 -; PPC64BE-NEXT: stb 0, 15(3) +; PPC64BE-NEXT: stb 0, 10(3) +; PPC64BE-NEXT: stb 12, 8(3) ; PPC64BE-NEXT: stb 11, 7(3) ; PPC64BE-NEXT: stb 10, 6(3) ; PPC64BE-NEXT: stb 9, 5(3) @@ -262,9 +262,8 @@ define <16 x i8> @vector_i128_i8(<16 x i8> %x, <16 x i8> %y) nounwind { ; ; PPC64LE-LABEL: vector_i128_i8: ; PPC64LE: # %bb.0: -; PPC64LE-NEXT: vspltisb 4, 1 -; PPC64LE-NEXT: vaddubm 2, 2, 3 -; PPC64LE-NEXT: vaddubm 2, 2, 4 +; PPC64LE-NEXT: xxlnor 34, 34, 34 +; PPC64LE-NEXT: vsububm 2, 3, 2 ; PPC64LE-NEXT: blr %t0 = add <16 x i8> %x, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1> %t1 = add <16 x i8> %y, %t0 @@ -280,22 +279,22 @@ define <8 x i16> @vector_i128_i16(<8 x i16> %x, <8 x i16> %y) nounwind { ; PPC32-NEXT: stw 28, 16(1) # 4-byte Folded Spill ; PPC32-NEXT: stw 29, 20(1) # 4-byte Folded Spill ; PPC32-NEXT: stw 30, 24(1) # 4-byte Folded Spill -; PPC32-NEXT: lhz 11, 62(1) -; PPC32-NEXT: lhz 12, 66(1) -; PPC32-NEXT: lhz 0, 70(1) -; PPC32-NEXT: lhz 30, 42(1) -; PPC32-NEXT: lhz 29, 46(1) -; PPC32-NEXT: lhz 28, 50(1) -; PPC32-NEXT: lhz 27, 54(1) -; PPC32-NEXT: lhz 26, 58(1) -; PPC32-NEXT: add 10, 10, 0 -; PPC32-NEXT: add 9, 9, 12 -; PPC32-NEXT: add 8, 8, 11 -; PPC32-NEXT: add 7, 7, 26 -; PPC32-NEXT: add 6, 6, 27 -; PPC32-NEXT: add 5, 5, 28 -; PPC32-NEXT: add 4, 4, 29 -; PPC32-NEXT: add 3, 3, 30 +; PPC32-NEXT: lhz 11, 50(1) +; PPC32-NEXT: lhz 12, 46(1) +; PPC32-NEXT: lhz 0, 42(1) +; PPC32-NEXT: lhz 30, 70(1) +; PPC32-NEXT: lhz 29, 66(1) +; PPC32-NEXT: lhz 28, 62(1) +; PPC32-NEXT: lhz 27, 58(1) +; PPC32-NEXT: lhz 26, 54(1) +; PPC32-NEXT: add 3, 0, 3 +; PPC32-NEXT: add 4, 12, 4 +; PPC32-NEXT: add 5, 11, 5 +; PPC32-NEXT: add 6, 26, 6 +; PPC32-NEXT: add 7, 27, 7 +; PPC32-NEXT: add 8, 28, 8 +; PPC32-NEXT: add 9, 29, 9 +; PPC32-NEXT: add 10, 30, 10 ; PPC32-NEXT: addi 3, 3, 1 ; PPC32-NEXT: addi 4, 4, 1 ; PPC32-NEXT: addi 5, 5, 1 @@ -320,24 +319,23 @@ define <8 x i16> @vector_i128_i16(<8 x i16> %x, <8 x i16> %y) nounwind { ; PPC64BE-NEXT: std 28, -32(1) # 8-byte Folded Spill ; PPC64BE-NEXT: std 29, -24(1) # 8-byte Folded Spill ; PPC64BE-NEXT: std 30, -16(1) # 8-byte Folded Spill -; PPC64BE-NEXT: lhz 11, 166(1) -; PPC64BE-NEXT: lhz 12, 174(1) -; PPC64BE-NEXT: lhz 0, 182(1) +; PPC64BE-NEXT: lhz 11, 142(1) +; PPC64BE-NEXT: lhz 12, 134(1) +; PPC64BE-NEXT: lhz 0, 126(1) ; PPC64BE-NEXT: lhz 30, 118(1) -; PPC64BE-NEXT: lhz 29, 126(1) -; PPC64BE-NEXT: lhz 28, 134(1) -; PPC64BE-NEXT: lhz 27, 142(1) -; PPC64BE-NEXT: lhz 26, 150(1) -; PPC64BE-NEXT: lhz 25, 158(1) -; PPC64BE-NEXT: std 2, -64(1) # 8-byte Folded Spill -; PPC64BE-NEXT: add 2, 30, 0 -; PPC64BE-NEXT: add 10, 10, 12 -; PPC64BE-NEXT: add 9, 9, 11 -; PPC64BE-NEXT: add 8, 8, 25 -; PPC64BE-NEXT: add 7, 7, 26 -; PPC64BE-NEXT: add 6, 6, 27 -; PPC64BE-NEXT: add 5, 5, 28 -; PPC64BE-NEXT: add 4, 4, 29 +; PPC64BE-NEXT: lhz 29, 182(1) +; PPC64BE-NEXT: lhz 28, 174(1) +; PPC64BE-NEXT: lhz 27, 166(1) +; PPC64BE-NEXT: lhz 26, 158(1) +; PPC64BE-NEXT: lhz 25, 150(1) +; PPC64BE-NEXT: add 4, 0, 4 +; PPC64BE-NEXT: add 5, 12, 5 +; PPC64BE-NEXT: add 6, 11, 6 +; PPC64BE-NEXT: add 7, 25, 7 +; PPC64BE-NEXT: add 8, 26, 8 +; PPC64BE-NEXT: add 9, 27, 9 +; PPC64BE-NEXT: add 10, 28, 10 +; PPC64BE-NEXT: add 11, 29, 30 ; PPC64BE-NEXT: addi 4, 4, 1 ; PPC64BE-NEXT: addi 5, 5, 1 ; PPC64BE-NEXT: addi 6, 6, 1 @@ -345,7 +343,7 @@ define <8 x i16> @vector_i128_i16(<8 x i16> %x, <8 x i16> %y) nounwind { ; PPC64BE-NEXT: addi 8, 8, 1 ; PPC64BE-NEXT: addi 9, 9, 1 ; PPC64BE-NEXT: addi 10, 10, 1 -; PPC64BE-NEXT: addi 11, 2, 1 +; PPC64BE-NEXT: addi 11, 11, 1 ; PPC64BE-NEXT: sth 11, 14(3) ; PPC64BE-NEXT: sth 10, 12(3) ; PPC64BE-NEXT: sth 9, 10(3) @@ -354,7 +352,6 @@ define <8 x i16> @vector_i128_i16(<8 x i16> %x, <8 x i16> %y) nounwind { ; PPC64BE-NEXT: sth 6, 4(3) ; PPC64BE-NEXT: sth 5, 2(3) ; PPC64BE-NEXT: sth 4, 0(3) -; PPC64BE-NEXT: ld 2, -64(1) # 8-byte Folded Reload ; PPC64BE-NEXT: ld 30, -16(1) # 8-byte Folded Reload ; PPC64BE-NEXT: ld 29, -24(1) # 8-byte Folded Reload ; PPC64BE-NEXT: ld 28, -32(1) # 8-byte Folded Reload @@ -365,9 +362,8 @@ define <8 x i16> @vector_i128_i16(<8 x i16> %x, <8 x i16> %y) nounwind { ; ; PPC64LE-LABEL: vector_i128_i16: ; PPC64LE: # %bb.0: -; PPC64LE-NEXT: vspltish 4, 1 -; PPC64LE-NEXT: vadduhm 2, 2, 3 -; PPC64LE-NEXT: vadduhm 2, 2, 4 +; PPC64LE-NEXT: xxlnor 34, 34, 34 +; PPC64LE-NEXT: vsubuhm 2, 3, 2 ; PPC64LE-NEXT: blr %t0 = add <8 x i16> %x, <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1> %t1 = add <8 x i16> %y, %t0 @@ -377,10 +373,10 @@ define <8 x i16> @vector_i128_i16(<8 x i16> %x, <8 x i16> %y) nounwind { define <4 x i32> @vector_i128_i32(<4 x i32> %x, <4 x i32> %y) nounwind { ; PPC32-LABEL: vector_i128_i32: ; PPC32: # %bb.0: -; PPC32-NEXT: add 6, 6, 10 -; PPC32-NEXT: add 5, 5, 9 -; PPC32-NEXT: add 4, 4, 8 -; PPC32-NEXT: add 3, 3, 7 +; PPC32-NEXT: add 3, 7, 3 +; PPC32-NEXT: add 4, 8, 4 +; PPC32-NEXT: add 5, 9, 5 +; PPC32-NEXT: add 6, 10, 6 ; PPC32-NEXT: addi 3, 3, 1 ; PPC32-NEXT: addi 4, 4, 1 ; PPC32-NEXT: addi 5, 5, 1 @@ -389,10 +385,10 @@ define <4 x i32> @vector_i128_i32(<4 x i32> %x, <4 x i32> %y) nounwind { ; ; PPC64BE-LABEL: vector_i128_i32: ; PPC64BE: # %bb.0: -; PPC64BE-NEXT: add 3, 3, 7 -; PPC64BE-NEXT: add 4, 4, 8 -; PPC64BE-NEXT: add 5, 5, 9 -; PPC64BE-NEXT: add 6, 6, 10 +; PPC64BE-NEXT: add 6, 10, 6 +; PPC64BE-NEXT: add 5, 9, 5 +; PPC64BE-NEXT: add 4, 8, 4 +; PPC64BE-NEXT: add 3, 7, 3 ; PPC64BE-NEXT: addi 6, 6, 1 ; PPC64BE-NEXT: addi 5, 5, 1 ; PPC64BE-NEXT: addi 4, 4, 1 @@ -401,9 +397,8 @@ define <4 x i32> @vector_i128_i32(<4 x i32> %x, <4 x i32> %y) nounwind { ; ; PPC64LE-LABEL: vector_i128_i32: ; PPC64LE: # %bb.0: -; PPC64LE-NEXT: vspltisw 4, 1 -; PPC64LE-NEXT: vadduwm 2, 2, 3 -; PPC64LE-NEXT: vadduwm 2, 2, 4 +; PPC64LE-NEXT: xxlnor 34, 34, 34 +; PPC64LE-NEXT: vsubuwm 2, 3, 2 ; PPC64LE-NEXT: blr %t0 = add <4 x i32> %x, <i32 1, i32 1, i32 1, i32 1> %t1 = add <4 x i32> %y, %t0 @@ -413,32 +408,28 @@ define <4 x i32> @vector_i128_i32(<4 x i32> %x, <4 x i32> %y) nounwind { define <2 x i64> @vector_i128_i64(<2 x i64> %x, <2 x i64> %y) nounwind { ; PPC32-LABEL: vector_i128_i64: ; PPC32: # %bb.0: -; PPC32-NEXT: addc 6, 6, 10 -; PPC32-NEXT: adde 5, 5, 9 -; PPC32-NEXT: addc 4, 4, 8 -; PPC32-NEXT: adde 3, 3, 7 -; PPC32-NEXT: addic 4, 4, 1 -; PPC32-NEXT: addze 3, 3 -; PPC32-NEXT: addic 6, 6, 1 -; PPC32-NEXT: addze 5, 5 +; PPC32-NEXT: nor 4, 4, 4 +; PPC32-NEXT: nor 3, 3, 3 +; PPC32-NEXT: subfc 4, 4, 8 +; PPC32-NEXT: nor 6, 6, 6 +; PPC32-NEXT: subfe 3, 3, 7 +; PPC32-NEXT: nor 5, 5, 5 +; PPC32-NEXT: subfc 6, 6, 10 +; PPC32-NEXT: subfe 5, 5, 9 ; PPC32-NEXT: blr ; ; PPC64BE-LABEL: vector_i128_i64: ; PPC64BE: # %bb.0: -; PPC64BE-NEXT: add 4, 4, 6 -; PPC64BE-NEXT: add 3, 3, 5 +; PPC64BE-NEXT: add 3, 5, 3 +; PPC64BE-NEXT: add 4, 6, 4 ; PPC64BE-NEXT: addi 3, 3, 1 ; PPC64BE-NEXT: addi 4, 4, 1 ; PPC64BE-NEXT: blr ; ; PPC64LE-LABEL: vector_i128_i64: ; PPC64LE: # %bb.0: -; PPC64LE-NEXT: addis 3, 2, .LCPI7_0@toc@ha -; PPC64LE-NEXT: vaddudm 2, 2, 3 -; PPC64LE-NEXT: addi 3, 3, .LCPI7_0@toc@l -; PPC64LE-NEXT: lxvd2x 0, 0, 3 -; PPC64LE-NEXT: xxswapd 36, 0 -; PPC64LE-NEXT: vaddudm 2, 2, 4 +; PPC64LE-NEXT: xxlnor 34, 34, 34 +; PPC64LE-NEXT: vsubudm 2, 3, 2 ; PPC64LE-NEXT: blr %t0 = add <2 x i64> %x, <i64 1, i64 1> %t1 = add <2 x i64> %y, %t0 |

