Wrong type-attribute for stp and str
authorDominik Infuehr <dominik.infuehr@theobroma-systems.com>
Mon, 30 Oct 2017 18:35:32 +0000 (18:35 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Mon, 30 Oct 2017 18:35:32 +0000 (18:35 +0000)
Fix the type attributes of the integer stores in aarch64_simd_mov.

    gcc/
* config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
both identically named patterns to (*aarch64_simd_mov<VD:mode>)
and (*aarch64_simd_mov<VQ:mode>).
(*aarch64_simd_mov<VD:mode>): Change type attribute to match
pattern alternative.
(*aarch64_simd_mov<VQ:mode>): Re-order and change type
attributes to match pattern alternative.

From-SVN: r254236

gcc/ChangeLog
gcc/config/aarch64/aarch64-simd.md

index 380ae33..bfd68e9 100644 (file)
@@ -1,3 +1,13 @@
+2017-10-30  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
+
+       * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
+       both identically named patterns to (*aarch64_simd_mov<VD:mode>)
+       and (*aarch64_simd_mov<VQ:mode>).
+       (*aarch64_simd_mov<VD:mode>): Change type attribute to match
+       pattern alternative.
+       (*aarch64_simd_mov<VQ:mode>): Re-order and change type
+       attributes to match pattern alternative.
+
 2017-10-30  Steven Munroe  <munroesj@gcc.gnu.org>
 
        * config.gcc (powerpc*-*-*): Add emmintrin.h.
index 49f615c..447ee3a 100644 (file)
   [(set_attr "type" "neon_dup<q>")]
 )
 
-(define_insn "*aarch64_simd_mov<mode>"
+(define_insn "*aarch64_simd_mov<VD:mode>"
   [(set (match_operand:VD 0 "nonimmediate_operand"
                "=w, m,  m,  w, ?r, ?w, ?r, w")
        (match_operand:VD 1 "general_operand"
      default: gcc_unreachable ();
      }
 }
-  [(set_attr "type" "neon_load1_1reg<q>, neon_stp, neon_store1_1reg<q>,\
+  [(set_attr "type" "neon_load1_1reg<q>, store_8, neon_store1_1reg<q>,\
                     neon_logic<q>, neon_to_gp<q>, f_mcr,\
                     mov_reg, neon_move<q>")]
 )
 
-(define_insn "*aarch64_simd_mov<mode>"
+(define_insn "*aarch64_simd_mov<VQ:mode>"
   [(set (match_operand:VQ 0 "nonimmediate_operand"
                "=w, Umq,  m,  w, ?r, ?w, ?r, w")
        (match_operand:VQ 1 "general_operand"
        gcc_unreachable ();
     }
 }
-  [(set_attr "type" "neon_load1_1reg<q>, neon_store1_1reg<q>,\
-                    neon_stp, neon_logic<q>, multiple, multiple,\
+  [(set_attr "type" "neon_load1_1reg<q>, store_16, neon_store1_1reg<q>,\
+                    neon_logic<q>, multiple, multiple,\
                     multiple, neon_move<q>")
    (set_attr "length" "4,4,4,4,8,8,8,4")]
 )