[Patch AArch64] Simplify reduc_plus_scal_v2[sd]f sequence
authorJames Greenhalgh <james.greenhalgh@arm.com>
Wed, 18 May 2016 08:00:33 +0000 (08:00 +0000)
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>
Wed, 18 May 2016 08:00:33 +0000 (08:00 +0000)
gcc/

* config/aarch64/aarch64-simd.md
(aarch64_reduc_plus_internal<mode>): Rename to...
(reduc_plus_scal): ...This, and remove previous implementation.

From-SVN: r236360

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

index 61a485c0923f68b5401c865804e2758958d1de4c..e71ce6d75b54b5e65bf97a0ea5b18925a9383c72 100644 (file)
@@ -1,3 +1,9 @@
+2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * config/aarch64/aarch64-simd.md
+       (aarch64_reduc_plus_internal<mode>): Rename to...
+       (reduc_plus_scal): ...This, and remove previous implementation.
+
 2016-05-18  Richard Biener  <rguenther@suse.de>
 
        * passes.def: Put late dse and cd_dce in canonical order.
index 17b89452e0b9596ae74f471d98eb48c7ac5cc451..59a578f5937a240b325af22021bbd662230ed404 100644 (file)
   }
 )
 
-(define_expand "reduc_plus_scal_<mode>"
-  [(match_operand:<VEL> 0 "register_operand" "=w")
-   (match_operand:V2F 1 "register_operand" "w")]
-  "TARGET_SIMD"
-  {
-    rtx elt = GEN_INT (ENDIAN_LANE_N (<MODE>mode, 0));
-    rtx scratch = gen_reg_rtx (<MODE>mode);
-    emit_insn (gen_aarch64_reduc_plus_internal<mode> (scratch, operands[1]));
-    emit_insn (gen_aarch64_get_lane<mode> (operands[0], scratch, elt));
-    DONE;
-  }
-)
-
 (define_insn "aarch64_reduc_plus_internal<mode>"
  [(set (match_operand:VDQV 0 "register_operand" "=w")
        (unspec:VDQV [(match_operand:VDQV 1 "register_operand" "w")]
   [(set_attr "type" "neon_reduc_add")]
 )
 
-(define_insn "aarch64_reduc_plus_internal<mode>"
- [(set (match_operand:V2F 0 "register_operand" "=w")
-       (unspec:V2F [(match_operand:V2F 1 "register_operand" "w")]
+(define_insn "reduc_plus_scal_<mode>"
+ [(set (match_operand:<VEL> 0 "register_operand" "=w")
+       (unspec:<VEL> [(match_operand:V2F 1 "register_operand" "w")]
                   UNSPEC_FADDV))]
  "TARGET_SIMD"
  "faddp\\t%<Vetype>0, %1.<Vtype>"