Remove dead pattern on ARM.
authorTamar Christina <tamar.christina@arm.com>
Thu, 16 Aug 2018 10:26:05 +0000 (10:26 +0000)
committerTamar Christina <tnfchris@gcc.gnu.org>
Thu, 16 Aug 2018 10:26:05 +0000 (10:26 +0000)
About 13 years ago the reg-to-reg patterns were split up, before that time
output_move_double could actually handle this case.

After the split was done most patterns were updated except for *neon_mov
which incorrectly retained reg,reg as a valid alternative.

However output_move_double can not handle this and simply returns ""
and asserts.

This pattern is essentially dead and I'm removing it for clarity.

gcc/
2018-08-16  Tamar Christina  <tamar.christina@arm.com>

* config/arm/neon.md (*neon_mov<mode>): Remove reg-to-reg alternative.

From-SVN: r263582

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

index 2831d6e7d0b564110f8c080f51372a1d8357ddad..85bf69c7bc4ad4df7a08cd6bf863922c9bf952a8 100644 (file)
@@ -1,3 +1,7 @@
+2018-08-16  Tamar Christina  <tamar.christina@arm.com>
+
+       * config/arm/neon.md (*neon_mov<mode>): Remove reg-to-reg alternative.
+
 2018-08-16  Sam Tebbs  <sam.tebbs@arm.com>
 
        * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt)
index 1646b2172970acaaf949ba8b77d43ec72b688d73..97d88e686ab3bca52a4cade0580951e509200c39 100644 (file)
@@ -25,9 +25,9 @@
 
 (define_insn "*neon_mov<mode>"
   [(set (match_operand:VDX 0 "nonimmediate_operand"
-         "=w,Un,w, w,  ?r,?w,?r,?r, ?Us")
+         "=w,Un,w, w,  ?r,?w,?r, ?Us")
        (match_operand:VDX 1 "general_operand"
-         " w,w, Dn,Uni, w, r, r, Usi,r"))]
+         " w,w, Dn,Uni, w, r, Usi,r"))]
   "TARGET_NEON
    && (register_operand (operands[0], <MODE>mode)
        || register_operand (operands[1], <MODE>mode))"
     }
 }
  [(set_attr "type" "neon_move<q>,neon_store1_1reg,neon_move<q>,\
-                    neon_load1_1reg, neon_to_gp<q>,neon_from_gp<q>,mov_reg,\
+                    neon_load1_1reg, neon_to_gp<q>,neon_from_gp<q>,\
                     neon_load1_2reg, neon_store1_2reg")
-  (set_attr "length" "4,4,4,4,4,4,8,8,8")
-  (set_attr "arm_pool_range"     "*,*,*,1020,*,*,*,1020,*")
-  (set_attr "thumb2_pool_range"     "*,*,*,1018,*,*,*,1018,*")
-  (set_attr "neg_pool_range" "*,*,*,1004,*,*,*,1004,*")])
+  (set_attr "length" "4,4,4,4,4,4,8,8")
+  (set_attr "arm_pool_range"     "*,*,*,1020,*,*,1020,*")
+  (set_attr "thumb2_pool_range"     "*,*,*,1018,*,*,1018,*")
+  (set_attr "neg_pool_range" "*,*,*,1004,*,*,1004,*")])
 
 (define_insn "*neon_mov<mode>"
   [(set (match_operand:VQXMOV 0 "nonimmediate_operand"