diff options
author | Geoffrey Keating <geoffk@apple.com> | 2005-02-03 06:36:02 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2005-02-03 06:36:02 +0000 |
commit | 666158b9cecdc55cc2f2cf0c77f571220b5a10c3 (patch) | |
tree | b9fc41b4284dd1212ec0f59c15bb2c40b47e1e1e | |
parent | cce4ca555977ed3f73197ff2e7773dade9aea665 (diff) | |
download | gcc-666158b9cecdc55cc2f2cf0c77f571220b5a10c3.zip gcc-666158b9cecdc55cc2f2cf0c77f571220b5a10c3.tar.gz gcc-666158b9cecdc55cc2f2cf0c77f571220b5a10c3.tar.bz2 |
altivec.md (altivec_dst): Make the first operand a REG, not a MEM.
2005-02-02 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/altivec.md (altivec_dst): Make the first operand
a REG, not a MEM.
(altivec_dstt): Likewise.
(altivec_dstst): Likewise.
(altivec_dststt): Likewise.
* config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
of first operand.
Index: testsuite/ChangeLog
2005-02-02 Geoffrey Keating <geoffk@apple.com>
* gcc.dg/altivec-19.c: New.
From-SVN: r94652
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/rs6000/altivec.md | 24 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 |
4 files changed, 27 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3dd5b28..70370e2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2005-02-02 Geoffrey Keating <geoffk@apple.com> + + * config/rs6000/altivec.md (altivec_dst): Make the first operand + a REG, not a MEM. + (altivec_dstt): Likewise. + (altivec_dstst): Likewise. + (altivec_dststt): Likewise. + * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation + of first operand. + 2005-02-03 Dorit Naishlos <dorit@il.ibm.com> * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md index 6084e16..1b3beff 100644 --- a/gcc/config/rs6000/altivec.md +++ b/gcc/config/rs6000/altivec.md @@ -1542,35 +1542,35 @@ [(set_attr "type" "vecsimple")]) (define_insn "altivec_dst" - [(unspec [(match_operand:V4SI 0 "memory_operand" "Q") + [(unspec [(match_operand 0 "register_operand" "b") (match_operand:SI 1 "register_operand" "r") (match_operand:QI 2 "immediate_operand" "i")] 190)] - "TARGET_ALTIVEC" - "dst %P0,%1,%2" + "TARGET_ALTIVEC && GET_MODE (operands[0]) == Pmode" + "dst %0,%1,%2" [(set_attr "type" "vecsimple")]) (define_insn "altivec_dstt" - [(unspec [(match_operand:V4SI 0 "memory_operand" "Q") + [(unspec [(match_operand 0 "register_operand" "b") (match_operand:SI 1 "register_operand" "r") (match_operand:QI 2 "immediate_operand" "i")] 191)] - "TARGET_ALTIVEC" - "dstt %P0,%1,%2" + "TARGET_ALTIVEC && GET_MODE (operands[0]) == Pmode" + "dstt %0,%1,%2" [(set_attr "type" "vecsimple")]) (define_insn "altivec_dstst" - [(unspec [(match_operand:V4SI 0 "memory_operand" "Q") + [(unspec [(match_operand 0 "register_operand" "b") (match_operand:SI 1 "register_operand" "r") (match_operand:QI 2 "immediate_operand" "i")] 192)] - "TARGET_ALTIVEC" - "dstst %P0,%1,%2" + "TARGET_ALTIVEC && GET_MODE (operands[0]) == Pmode" + "dstst %0,%1,%2" [(set_attr "type" "vecsimple")]) (define_insn "altivec_dststt" - [(unspec [(match_operand:V4SI 0 "memory_operand" "Q") + [(unspec [(match_operand 0 "register_operand" "b") (match_operand:SI 1 "register_operand" "r") (match_operand:QI 2 "immediate_operand" "i")] 193)] - "TARGET_ALTIVEC" - "dststt %P0,%1,%2" + "TARGET_ALTIVEC && GET_MODE (operands[0]) == Pmode" + "dststt %0,%1,%2" [(set_attr "type" "vecsimple")]) (define_insn "altivec_lvsl" diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 4406f1b..f1bb23f 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -7225,7 +7225,7 @@ altivec_expand_dst_builtin (tree exp, rtx target ATTRIBUTE_UNUSED, } if (! (*insn_data[d->icode].operand[0].predicate) (op0, mode0)) - op0 = gen_rtx_MEM (mode0, copy_to_mode_reg (Pmode, op0)); + op0 = copy_to_mode_reg (Pmode, op0); if (! (*insn_data[d->icode].operand[1].predicate) (op1, mode1)) op1 = copy_to_mode_reg (mode1, op1); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1d80350..b5f4ecc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2005-02-02 Geoffrey Keating <geoffk@apple.com> + + * gcc.dg/altivec-19.c: New. + 2005-02-03 Joseph S. Myers <joseph@codesourcery.com> PR c/17807 |