aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamana Radhakrishnan <ramana.radhakrishnan@linaro.org>2012-08-15 08:39:48 +0000
committerRamana Radhakrishnan <ramana@gcc.gnu.org>2012-08-15 08:39:48 +0000
commit5b28d82184aa2a965dca03f0181255616f3ca358 (patch)
treeb9af700e16946e6acd4e4c23139d65343258e5da
parentc3b1709a71774c5ad7b15911b6f0fb2ea38f2a3c (diff)
downloadgcc-5b28d82184aa2a965dca03f0181255616f3ca358.zip
gcc-5b28d82184aa2a965dca03f0181255616f3ca358.tar.gz
gcc-5b28d82184aa2a965dca03f0181255616f3ca358.tar.bz2
Canonicalize operand to vaba and vabal.
2012-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> * config/arm/neon.md (neon_vaba<mode> VDQIW): Canonicalize operands. (neon_vabal<mode> VDQIW): Likewise. From-SVN: r190408
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/neon.md12
2 files changed, 12 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a42125b..a9336e1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2012-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
+ * config/arm/neon.md (neon_vaba<mode> VDQIW): Canonicalize
+ operands.
+ (neon_vabal<mode> VDQIW): Likewise.
+
+2012-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
+
PR target/54212
* config/arm/neon.md (vec_set<mode>_internal VD,VQ): Do not
mark as predicable. Adjust asm template.
diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md
index 12c7934..a929546 100644
--- a/gcc/config/arm/neon.md
+++ b/gcc/config/arm/neon.md
@@ -2331,11 +2331,11 @@
(define_insn "neon_vaba<mode>"
[(set (match_operand:VDQIW 0 "s_register_operand" "=w")
- (plus:VDQIW (match_operand:VDQIW 1 "s_register_operand" "0")
- (unspec:VDQIW [(match_operand:VDQIW 2 "s_register_operand" "w")
+ (plus:VDQIW (unspec:VDQIW [(match_operand:VDQIW 2 "s_register_operand" "w")
(match_operand:VDQIW 3 "s_register_operand" "w")
(match_operand:SI 4 "immediate_operand" "i")]
- UNSPEC_VABD)))]
+ UNSPEC_VABD)
+ (match_operand:VDQIW 1 "s_register_operand" "0")))]
"TARGET_NEON"
"vaba.%T4%#<V_sz_elem>\t%<V_reg>0, %<V_reg>2, %<V_reg>3"
[(set (attr "neon_type")
@@ -2345,11 +2345,11 @@
(define_insn "neon_vabal<mode>"
[(set (match_operand:<V_widen> 0 "s_register_operand" "=w")
- (plus:<V_widen> (match_operand:<V_widen> 1 "s_register_operand" "0")
- (unspec:<V_widen> [(match_operand:VW 2 "s_register_operand" "w")
+ (plus:<V_widen> (unspec:<V_widen> [(match_operand:VW 2 "s_register_operand" "w")
(match_operand:VW 3 "s_register_operand" "w")
(match_operand:SI 4 "immediate_operand" "i")]
- UNSPEC_VABDL)))]
+ UNSPEC_VABDL)
+ (match_operand:<V_widen> 1 "s_register_operand" "0")))]
"TARGET_NEON"
"vabal.%T4%#<V_sz_elem>\t%q0, %P2, %P3"
[(set_attr "neon_type" "neon_vaba")]