diff options
Diffstat (limited to 'gcc/config/arm/vec-common.md')
-rw-r--r-- | gcc/config/arm/vec-common.md | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/gcc/config/arm/vec-common.md b/gcc/config/arm/vec-common.md index 7843059..8d9c89c 100644 --- a/gcc/config/arm/vec-common.md +++ b/gcc/config/arm/vec-common.md @@ -186,73 +186,3 @@ (match_operand:VDQ 2 "neon_logic_op2" "")))] "ARM_HAVE_<MODE>_ARITH" ) - -(define_expand "cadd<rot><mode>3" - [(set (match_operand:VF 0 "register_operand") - (unspec:VF [(match_operand:VF 1 "register_operand") - (match_operand:VF 2 "register_operand")] - VCADD))] - "(TARGET_COMPLEX || (TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT - && ARM_HAVE_<MODE>_ARITH)) && !BYTES_BIG_ENDIAN" -) - -;; The complex mul operations always need to expand to two instructions. -;; The first operation does half the computation and the second does the -;; remainder. Because of this, expand early. -(define_expand "cmul<rot_op><mode>3" - [(set (match_operand:VQ_HSF 0 "register_operand") - (unspec:VQ_HSF [(match_operand:VQ_HSF 1 "register_operand") - (match_operand:VQ_HSF 2 "register_operand")] - VCMUL_OP))] - "(TARGET_COMPLEX || (TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT)) - && !BYTES_BIG_ENDIAN" -{ - rtx res1 = gen_reg_rtx (<MODE>mode); - if (TARGET_COMPLEX) - { - rtx tmp = gen_reg_rtx (<MODE>mode); - emit_move_insn (tmp, CONST0_RTX (<MODE>mode)); - emit_insn (gen_neon_vcmla<rotsplit1><mode> (res1, tmp, - operands[1], operands[2])); - emit_insn (gen_neon_vcmla<rotsplit2><mode> (operands[0], res1, - operands[1], operands[2])); - } - else - { - emit_insn (gen_mve_vcmulq<mve_rotsplit1><mode> (operands[0], operands[1], - operands[2])); - emit_insn (gen_mve_vcmulq<mve_rotsplit2><mode> (operands[0], operands[1], - operands[2])); - } - DONE; -}) - -(define_expand "arm_vcmla<rot><mode>" - [(set (match_operand:VF 0 "register_operand") - (plus:VF (match_operand:VF 1 "register_operand") - (unspec:VF [(match_operand:VF 2 "register_operand") - (match_operand:VF 3 "register_operand")] - VCMLA)))] - "(TARGET_COMPLEX || (TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT - && ARM_HAVE_<MODE>_ARITH)) && !BYTES_BIG_ENDIAN" -) - -;; The complex mla/mls operations always need to expand to two instructions. -;; The first operation does half the computation and the second does the -;; remainder. Because of this, expand early. -(define_expand "cml<fcmac1><rot_op><mode>4" - [(set (match_operand:VF 0 "register_operand") - (plus:VF (match_operand:VF 1 "register_operand") - (unspec:VF [(match_operand:VF 2 "register_operand") - (match_operand:VF 3 "register_operand")] - VCMLA_OP)))] - "(TARGET_COMPLEX || (TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT - && ARM_HAVE_<MODE>_ARITH)) && !BYTES_BIG_ENDIAN" -{ - rtx tmp = gen_reg_rtx (<MODE>mode); - emit_insn (gen_arm_vcmla<rotsplit1><mode> (tmp, operands[1], - operands[2], operands[3])); - emit_insn (gen_arm_vcmla<rotsplit2><mode> (operands[0], tmp, - operands[2], operands[3])); - DONE; -}) |