summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/vector.md
diff options
context:
space:
mode:
authorPeter Bergner <bergner@vnet.ibm.com>2018-03-20 12:25:09 -0500
committerPeter Bergner <bergner@gcc.gnu.org>2018-03-20 12:25:09 -0500
commit91d014fffae1fcf1eb750d40e622e5b80cd1a4ec (patch)
tree976be9886676b81facf0acac63d743ca7bb99c1b /gcc/config/rs6000/vector.md
parent770ebe99fe48aca10f3553c4195deba1757d328a (diff)
downloadgcc-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.md14
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;
}
})