diff options
author | Peter Bergner <bergner@vnet.ibm.com> | 2018-03-20 12:25:09 -0500 |
---|---|---|
committer | Peter Bergner <bergner@gcc.gnu.org> | 2018-03-20 12:25:09 -0500 |
commit | 91d014fffae1fcf1eb750d40e622e5b80cd1a4ec (patch) | |
tree | 976be9886676b81facf0acac63d743ca7bb99c1b /gcc/config/rs6000/vector.md | |
parent | 770ebe99fe48aca10f3553c4195deba1757d328a (diff) | |
download | gcc-91d014fffae1fcf1eb750d40e622e5b80cd1a4ec.tar.gz |
re PR target/83789 (__builtin_altivec_lvx fails for powerpc for altivec-4.c)
PR target/83789
* config/rs6000/altivec.md (altivec_lvx_<mode>_2op): Delete define_insn.
(altivec_lvx_<mode>_1op): Likewise.
(altivec_stvx_<mode>_2op): Likewise.
(altivec_stvx_<mode>_1op): Likewise.
(altivec_lvx_<VM2:mode>): New define_expand.
(altivec_stvx_<VM2:mode>): Likewise.
(altivec_lvx_<VM2:mode>_2op_<P:mptrsize>): New define_insn.
(altivec_lvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
(altivec_stvx_<VM2:mode>_2op_<P:mptrsize>): Likewise.
(altivec_stvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
* config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Use new expanders.
(rs6000_gen_lvx): Likewise.
* config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise.
(altivec_expand_stv_builtin): Likewise.
(altivec_expand_builtin): Likewise.
* config/rs6000/vector.md: Likewise.
From-SVN: r258688
Diffstat (limited to 'gcc/config/rs6000/vector.md')
-rw-r--r-- | gcc/config/rs6000/vector.md | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/gcc/config/rs6000/vector.md b/gcc/config/rs6000/vector.md index d27079bf129..082acba8cee 100644 --- a/gcc/config/rs6000/vector.md +++ b/gcc/config/rs6000/vector.md @@ -196,12 +196,7 @@ operands[1] = rs6000_address_for_altivec (operands[1]); rtx and_op = XEXP (operands[1], 0); gcc_assert (GET_CODE (and_op) == AND); - rtx addr = XEXP (and_op, 0); - if (GET_CODE (addr) == PLUS) - emit_insn (gen_altivec_lvx_<mode>_2op (operands[0], XEXP (addr, 0), - XEXP (addr, 1))); - else - emit_insn (gen_altivec_lvx_<mode>_1op (operands[0], operands[1])); + emit_insn (gen_altivec_lvx_<mode> (operands[0], operands[1])); DONE; } }) @@ -218,12 +213,7 @@ operands[0] = rs6000_address_for_altivec (operands[0]); rtx and_op = XEXP (operands[0], 0); gcc_assert (GET_CODE (and_op) == AND); - rtx addr = XEXP (and_op, 0); - if (GET_CODE (addr) == PLUS) - emit_insn (gen_altivec_stvx_<mode>_2op (operands[1], XEXP (addr, 0), - XEXP (addr, 1))); - else - emit_insn (gen_altivec_stvx_<mode>_1op (operands[1], operands[0])); + emit_insn (gen_altivec_stvx_<mode> (operands[1], operands[0])); DONE; } }) |