altivec.md (vec_unpacku_hi_v16qi): Adjust for little endian.
2013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for little endian. (vec_unpacku_hi_v8hi): Likewise. (vec_unpacku_lo_v16qi): Likewise. (vec_unpacku_lo_v8hi): Likewise. From-SVN: r203877
This commit is contained in:
parent
915e8e6eec
commit
dd346f1f1a
|
@ -1,3 +1,11 @@
|
|||
2013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||
|
||||
* config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
|
||||
little endian.
|
||||
(vec_unpacku_hi_v8hi): Likewise.
|
||||
(vec_unpacku_lo_v16qi): Likewise.
|
||||
(vec_unpacku_lo_v8hi): Likewise.
|
||||
|
||||
2013-10-20 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* config/i386/x86-tune.def (X86_TUNE_SLOW_IMUL_IMM32_MEM,
|
||||
|
|
|
@ -2035,25 +2035,26 @@
|
|||
rtx vzero = gen_reg_rtx (V8HImode);
|
||||
rtx mask = gen_reg_rtx (V16QImode);
|
||||
rtvec v = rtvec_alloc (16);
|
||||
bool be = BYTES_BIG_ENDIAN;
|
||||
|
||||
emit_insn (gen_altivec_vspltish (vzero, const0_rtx));
|
||||
|
||||
RTVEC_ELT (v, 0) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 1) = gen_rtx_CONST_INT (QImode, 0);
|
||||
RTVEC_ELT (v, 2) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 3) = gen_rtx_CONST_INT (QImode, 1);
|
||||
RTVEC_ELT (v, 4) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 5) = gen_rtx_CONST_INT (QImode, 2);
|
||||
RTVEC_ELT (v, 6) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 7) = gen_rtx_CONST_INT (QImode, 3);
|
||||
RTVEC_ELT (v, 8) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 9) = gen_rtx_CONST_INT (QImode, 4);
|
||||
RTVEC_ELT (v, 10) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 11) = gen_rtx_CONST_INT (QImode, 5);
|
||||
RTVEC_ELT (v, 12) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 13) = gen_rtx_CONST_INT (QImode, 6);
|
||||
RTVEC_ELT (v, 14) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 15) = gen_rtx_CONST_INT (QImode, 7);
|
||||
RTVEC_ELT (v, 0) = gen_rtx_CONST_INT (QImode, be ? 16 : 7);
|
||||
RTVEC_ELT (v, 1) = gen_rtx_CONST_INT (QImode, be ? 0 : 16);
|
||||
RTVEC_ELT (v, 2) = gen_rtx_CONST_INT (QImode, be ? 16 : 6);
|
||||
RTVEC_ELT (v, 3) = gen_rtx_CONST_INT (QImode, be ? 1 : 16);
|
||||
RTVEC_ELT (v, 4) = gen_rtx_CONST_INT (QImode, be ? 16 : 5);
|
||||
RTVEC_ELT (v, 5) = gen_rtx_CONST_INT (QImode, be ? 2 : 16);
|
||||
RTVEC_ELT (v, 6) = gen_rtx_CONST_INT (QImode, be ? 16 : 4);
|
||||
RTVEC_ELT (v, 7) = gen_rtx_CONST_INT (QImode, be ? 3 : 16);
|
||||
RTVEC_ELT (v, 8) = gen_rtx_CONST_INT (QImode, be ? 16 : 3);
|
||||
RTVEC_ELT (v, 9) = gen_rtx_CONST_INT (QImode, be ? 4 : 16);
|
||||
RTVEC_ELT (v, 10) = gen_rtx_CONST_INT (QImode, be ? 16 : 2);
|
||||
RTVEC_ELT (v, 11) = gen_rtx_CONST_INT (QImode, be ? 5 : 16);
|
||||
RTVEC_ELT (v, 12) = gen_rtx_CONST_INT (QImode, be ? 16 : 1);
|
||||
RTVEC_ELT (v, 13) = gen_rtx_CONST_INT (QImode, be ? 6 : 16);
|
||||
RTVEC_ELT (v, 14) = gen_rtx_CONST_INT (QImode, be ? 16 : 0);
|
||||
RTVEC_ELT (v, 15) = gen_rtx_CONST_INT (QImode, be ? 7 : 16);
|
||||
|
||||
emit_insn (gen_vec_initv16qi (mask, gen_rtx_PARALLEL (V16QImode, v)));
|
||||
emit_insn (gen_vperm_v16qiv8hi (operands[0], operands[1], vzero, mask));
|
||||
|
@ -2070,25 +2071,26 @@
|
|||
rtx vzero = gen_reg_rtx (V4SImode);
|
||||
rtx mask = gen_reg_rtx (V16QImode);
|
||||
rtvec v = rtvec_alloc (16);
|
||||
bool be = BYTES_BIG_ENDIAN;
|
||||
|
||||
emit_insn (gen_altivec_vspltisw (vzero, const0_rtx));
|
||||
|
||||
RTVEC_ELT (v, 0) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 1) = gen_rtx_CONST_INT (QImode, 17);
|
||||
RTVEC_ELT (v, 2) = gen_rtx_CONST_INT (QImode, 0);
|
||||
RTVEC_ELT (v, 3) = gen_rtx_CONST_INT (QImode, 1);
|
||||
RTVEC_ELT (v, 4) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 5) = gen_rtx_CONST_INT (QImode, 17);
|
||||
RTVEC_ELT (v, 6) = gen_rtx_CONST_INT (QImode, 2);
|
||||
RTVEC_ELT (v, 7) = gen_rtx_CONST_INT (QImode, 3);
|
||||
RTVEC_ELT (v, 8) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 9) = gen_rtx_CONST_INT (QImode, 17);
|
||||
RTVEC_ELT (v, 10) = gen_rtx_CONST_INT (QImode, 4);
|
||||
RTVEC_ELT (v, 11) = gen_rtx_CONST_INT (QImode, 5);
|
||||
RTVEC_ELT (v, 12) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 13) = gen_rtx_CONST_INT (QImode, 17);
|
||||
RTVEC_ELT (v, 14) = gen_rtx_CONST_INT (QImode, 6);
|
||||
RTVEC_ELT (v, 15) = gen_rtx_CONST_INT (QImode, 7);
|
||||
RTVEC_ELT (v, 0) = gen_rtx_CONST_INT (QImode, be ? 16 : 7);
|
||||
RTVEC_ELT (v, 1) = gen_rtx_CONST_INT (QImode, be ? 17 : 6);
|
||||
RTVEC_ELT (v, 2) = gen_rtx_CONST_INT (QImode, be ? 0 : 17);
|
||||
RTVEC_ELT (v, 3) = gen_rtx_CONST_INT (QImode, be ? 1 : 16);
|
||||
RTVEC_ELT (v, 4) = gen_rtx_CONST_INT (QImode, be ? 16 : 5);
|
||||
RTVEC_ELT (v, 5) = gen_rtx_CONST_INT (QImode, be ? 17 : 4);
|
||||
RTVEC_ELT (v, 6) = gen_rtx_CONST_INT (QImode, be ? 2 : 17);
|
||||
RTVEC_ELT (v, 7) = gen_rtx_CONST_INT (QImode, be ? 3 : 16);
|
||||
RTVEC_ELT (v, 8) = gen_rtx_CONST_INT (QImode, be ? 16 : 3);
|
||||
RTVEC_ELT (v, 9) = gen_rtx_CONST_INT (QImode, be ? 17 : 2);
|
||||
RTVEC_ELT (v, 10) = gen_rtx_CONST_INT (QImode, be ? 4 : 17);
|
||||
RTVEC_ELT (v, 11) = gen_rtx_CONST_INT (QImode, be ? 5 : 16);
|
||||
RTVEC_ELT (v, 12) = gen_rtx_CONST_INT (QImode, be ? 16 : 1);
|
||||
RTVEC_ELT (v, 13) = gen_rtx_CONST_INT (QImode, be ? 17 : 0);
|
||||
RTVEC_ELT (v, 14) = gen_rtx_CONST_INT (QImode, be ? 6 : 17);
|
||||
RTVEC_ELT (v, 15) = gen_rtx_CONST_INT (QImode, be ? 7 : 16);
|
||||
|
||||
emit_insn (gen_vec_initv16qi (mask, gen_rtx_PARALLEL (V16QImode, v)));
|
||||
emit_insn (gen_vperm_v8hiv4si (operands[0], operands[1], vzero, mask));
|
||||
|
@ -2105,25 +2107,26 @@
|
|||
rtx vzero = gen_reg_rtx (V8HImode);
|
||||
rtx mask = gen_reg_rtx (V16QImode);
|
||||
rtvec v = rtvec_alloc (16);
|
||||
bool be = BYTES_BIG_ENDIAN;
|
||||
|
||||
emit_insn (gen_altivec_vspltish (vzero, const0_rtx));
|
||||
|
||||
RTVEC_ELT (v, 0) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 1) = gen_rtx_CONST_INT (QImode, 8);
|
||||
RTVEC_ELT (v, 2) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 3) = gen_rtx_CONST_INT (QImode, 9);
|
||||
RTVEC_ELT (v, 4) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 5) = gen_rtx_CONST_INT (QImode, 10);
|
||||
RTVEC_ELT (v, 6) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 7) = gen_rtx_CONST_INT (QImode, 11);
|
||||
RTVEC_ELT (v, 8) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 9) = gen_rtx_CONST_INT (QImode, 12);
|
||||
RTVEC_ELT (v, 10) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 11) = gen_rtx_CONST_INT (QImode, 13);
|
||||
RTVEC_ELT (v, 12) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 13) = gen_rtx_CONST_INT (QImode, 14);
|
||||
RTVEC_ELT (v, 14) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 15) = gen_rtx_CONST_INT (QImode, 15);
|
||||
RTVEC_ELT (v, 0) = gen_rtx_CONST_INT (QImode, be ? 16 : 15);
|
||||
RTVEC_ELT (v, 1) = gen_rtx_CONST_INT (QImode, be ? 8 : 16);
|
||||
RTVEC_ELT (v, 2) = gen_rtx_CONST_INT (QImode, be ? 16 : 14);
|
||||
RTVEC_ELT (v, 3) = gen_rtx_CONST_INT (QImode, be ? 9 : 16);
|
||||
RTVEC_ELT (v, 4) = gen_rtx_CONST_INT (QImode, be ? 16 : 13);
|
||||
RTVEC_ELT (v, 5) = gen_rtx_CONST_INT (QImode, be ? 10 : 16);
|
||||
RTVEC_ELT (v, 6) = gen_rtx_CONST_INT (QImode, be ? 16 : 12);
|
||||
RTVEC_ELT (v, 7) = gen_rtx_CONST_INT (QImode, be ? 11 : 16);
|
||||
RTVEC_ELT (v, 8) = gen_rtx_CONST_INT (QImode, be ? 16 : 11);
|
||||
RTVEC_ELT (v, 9) = gen_rtx_CONST_INT (QImode, be ? 12 : 16);
|
||||
RTVEC_ELT (v, 10) = gen_rtx_CONST_INT (QImode, be ? 16 : 10);
|
||||
RTVEC_ELT (v, 11) = gen_rtx_CONST_INT (QImode, be ? 13 : 16);
|
||||
RTVEC_ELT (v, 12) = gen_rtx_CONST_INT (QImode, be ? 16 : 9);
|
||||
RTVEC_ELT (v, 13) = gen_rtx_CONST_INT (QImode, be ? 14 : 16);
|
||||
RTVEC_ELT (v, 14) = gen_rtx_CONST_INT (QImode, be ? 16 : 8);
|
||||
RTVEC_ELT (v, 15) = gen_rtx_CONST_INT (QImode, be ? 15 : 16);
|
||||
|
||||
emit_insn (gen_vec_initv16qi (mask, gen_rtx_PARALLEL (V16QImode, v)));
|
||||
emit_insn (gen_vperm_v16qiv8hi (operands[0], operands[1], vzero, mask));
|
||||
|
@ -2140,25 +2143,26 @@
|
|||
rtx vzero = gen_reg_rtx (V4SImode);
|
||||
rtx mask = gen_reg_rtx (V16QImode);
|
||||
rtvec v = rtvec_alloc (16);
|
||||
bool be = BYTES_BIG_ENDIAN;
|
||||
|
||||
emit_insn (gen_altivec_vspltisw (vzero, const0_rtx));
|
||||
|
||||
RTVEC_ELT (v, 0) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 1) = gen_rtx_CONST_INT (QImode, 17);
|
||||
RTVEC_ELT (v, 2) = gen_rtx_CONST_INT (QImode, 8);
|
||||
RTVEC_ELT (v, 3) = gen_rtx_CONST_INT (QImode, 9);
|
||||
RTVEC_ELT (v, 4) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 5) = gen_rtx_CONST_INT (QImode, 17);
|
||||
RTVEC_ELT (v, 6) = gen_rtx_CONST_INT (QImode, 10);
|
||||
RTVEC_ELT (v, 7) = gen_rtx_CONST_INT (QImode, 11);
|
||||
RTVEC_ELT (v, 8) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 9) = gen_rtx_CONST_INT (QImode, 17);
|
||||
RTVEC_ELT (v, 10) = gen_rtx_CONST_INT (QImode, 12);
|
||||
RTVEC_ELT (v, 11) = gen_rtx_CONST_INT (QImode, 13);
|
||||
RTVEC_ELT (v, 12) = gen_rtx_CONST_INT (QImode, 16);
|
||||
RTVEC_ELT (v, 13) = gen_rtx_CONST_INT (QImode, 17);
|
||||
RTVEC_ELT (v, 14) = gen_rtx_CONST_INT (QImode, 14);
|
||||
RTVEC_ELT (v, 15) = gen_rtx_CONST_INT (QImode, 15);
|
||||
RTVEC_ELT (v, 0) = gen_rtx_CONST_INT (QImode, be ? 16 : 15);
|
||||
RTVEC_ELT (v, 1) = gen_rtx_CONST_INT (QImode, be ? 17 : 14);
|
||||
RTVEC_ELT (v, 2) = gen_rtx_CONST_INT (QImode, be ? 8 : 17);
|
||||
RTVEC_ELT (v, 3) = gen_rtx_CONST_INT (QImode, be ? 9 : 16);
|
||||
RTVEC_ELT (v, 4) = gen_rtx_CONST_INT (QImode, be ? 16 : 13);
|
||||
RTVEC_ELT (v, 5) = gen_rtx_CONST_INT (QImode, be ? 17 : 12);
|
||||
RTVEC_ELT (v, 6) = gen_rtx_CONST_INT (QImode, be ? 10 : 17);
|
||||
RTVEC_ELT (v, 7) = gen_rtx_CONST_INT (QImode, be ? 11 : 16);
|
||||
RTVEC_ELT (v, 8) = gen_rtx_CONST_INT (QImode, be ? 16 : 11);
|
||||
RTVEC_ELT (v, 9) = gen_rtx_CONST_INT (QImode, be ? 17 : 10);
|
||||
RTVEC_ELT (v, 10) = gen_rtx_CONST_INT (QImode, be ? 12 : 17);
|
||||
RTVEC_ELT (v, 11) = gen_rtx_CONST_INT (QImode, be ? 13 : 16);
|
||||
RTVEC_ELT (v, 12) = gen_rtx_CONST_INT (QImode, be ? 16 : 9);
|
||||
RTVEC_ELT (v, 13) = gen_rtx_CONST_INT (QImode, be ? 17 : 8);
|
||||
RTVEC_ELT (v, 14) = gen_rtx_CONST_INT (QImode, be ? 14 : 17);
|
||||
RTVEC_ELT (v, 15) = gen_rtx_CONST_INT (QImode, be ? 15 : 16);
|
||||
|
||||
emit_insn (gen_vec_initv16qi (mask, gen_rtx_PARALLEL (V16QImode, v)));
|
||||
emit_insn (gen_vperm_v8hiv4si (operands[0], operands[1], vzero, mask));
|
||||
|
|
Loading…
Reference in New Issue