]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Canonicalize operand to vaba and vabal.
authorRamana Radhakrishnan <ramana.radhakrishnan@linaro.org>
Wed, 15 Aug 2012 08:39:48 +0000 (08:39 +0000)
committerRamana Radhakrishnan <ramana@gcc.gnu.org>
Wed, 15 Aug 2012 08:39:48 +0000 (08:39 +0000)
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

gcc/ChangeLog
gcc/config/arm/neon.md

index a42125bcf92a12ed34da58bbf2a84c1fd178e40d..a9336e1e7b29d0ee16a988cd6a1e92a5b0aac968 100644 (file)
@@ -1,3 +1,9 @@
+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
index 12c7934d0a49108e407f430f881477b0bc494e21..a9295465fafc6f1033697f0d81ef76db26007151 100644 (file)
 
 (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")
 
 (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")]