summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/PowerPC/inc-of-add.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/PowerPC/inc-of-add.ll')
-rw-r--r--llvm/test/CodeGen/PowerPC/inc-of-add.ll401
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
OpenPOWER on IntegriCloud