aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@apple.com>2005-02-03 06:36:02 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2005-02-03 06:36:02 +0000
commit666158b9cecdc55cc2f2cf0c77f571220b5a10c3 (patch)
treeb9fc41b4284dd1212ec0f59c15bb2c40b47e1e1e /gcc
parentcce4ca555977ed3f73197ff2e7773dade9aea665 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/rs6000/altivec.md24
-rw-r--r--gcc/config/rs6000/rs6000.c2
-rw-r--r--gcc/testsuite/ChangeLog4
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