diff options
Diffstat (limited to 'gcc/config/aarch64/aarch64-simd.md')
-rw-r--r-- | gcc/config/aarch64/aarch64-simd.md | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index bd73bce6441..0dd4bf81078 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -371,15 +371,15 @@ [(set_attr "type" "neon<fp>_mul_<Vetype>_scalar<q>")] ) -(define_insn "*aarch64_mul3_elt_to_128df" - [(set (match_operand:V2DF 0 "register_operand" "=w") - (mult:V2DF - (vec_duplicate:V2DF - (match_operand:DF 2 "register_operand" "w")) - (match_operand:V2DF 1 "register_operand" "w")))] +(define_insn "*aarch64_mul3_elt_from_dup<mode>" + [(set (match_operand:VMUL 0 "register_operand" "=w") + (mult:VMUL + (vec_duplicate:VMUL + (match_operand:<VEL> 1 "register_operand" "<h_con>")) + (match_operand:VMUL 2 "register_operand" "w")))] "TARGET_SIMD" - "fmul\\t%0.2d, %1.2d, %2.d[0]" - [(set_attr "type" "neon_fp_mul_d_scalar_q")] + "<f>mul\t%0.<Vtype>, %2.<Vtype>, %1.<Vetype>[0]"; + [(set_attr "type" "neon<fp>_mul_<Vetype>_scalar<q>")] ) (define_insn "aarch64_rsqrte_<mode>2" @@ -1579,16 +1579,16 @@ [(set_attr "type" "neon_fp_mla_<Vetype>_scalar<q>")] ) -(define_insn "*aarch64_fma4_elt_to_128df" - [(set (match_operand:V2DF 0 "register_operand" "=w") - (fma:V2DF - (vec_duplicate:V2DF - (match_operand:DF 1 "register_operand" "w")) - (match_operand:V2DF 2 "register_operand" "w") - (match_operand:V2DF 3 "register_operand" "0")))] +(define_insn "*aarch64_fma4_elt_from_dup<mode>" + [(set (match_operand:VMUL 0 "register_operand" "=w") + (fma:VMUL + (vec_duplicate:VMUL + (match_operand:<VEL> 1 "register_operand" "w")) + (match_operand:VMUL 2 "register_operand" "w") + (match_operand:VMUL 3 "register_operand" "0")))] "TARGET_SIMD" - "fmla\\t%0.2d, %2.2d, %1.2d[0]" - [(set_attr "type" "neon_fp_mla_d_scalar_q")] + "fmla\t%0.<Vtype>, %2.<Vtype>, %1.<Vetype>[0]" + [(set_attr "type" "neon<fp>_mla_<Vetype>_scalar<q>")] ) (define_insn "*aarch64_fma4_elt_to_64v2df" @@ -1656,17 +1656,17 @@ [(set_attr "type" "neon_fp_mla_<Vetype>_scalar<q>")] ) -(define_insn "*aarch64_fnma4_elt_to_128df" - [(set (match_operand:V2DF 0 "register_operand" "=w") - (fma:V2DF - (neg:V2DF - (match_operand:V2DF 2 "register_operand" "w")) - (vec_duplicate:V2DF - (match_operand:DF 1 "register_operand" "w")) - (match_operand:V2DF 3 "register_operand" "0")))] - "TARGET_SIMD" - "fmls\\t%0.2d, %2.2d, %1.2d[0]" - [(set_attr "type" "neon_fp_mla_d_scalar_q")] +(define_insn "*aarch64_fnma4_elt_from_dup<mode>" + [(set (match_operand:VMUL 0 "register_operand" "=w") + (fma:VMUL + (neg:VMUL + (match_operand:VMUL 2 "register_operand" "w")) + (vec_duplicate:VMUL + (match_operand:<VEL> 1 "register_operand" "w")) + (match_operand:VMUL 3 "register_operand" "0")))] + "TARGET_SIMD" + "fmls\t%0.<Vtype>, %2.<Vtype>, %1.<Vetype>[0]" + [(set_attr "type" "neon<fp>_mla_<Vetype>_scalar<q>")] ) (define_insn "*aarch64_fnma4_elt_to_64v2df" |