From: Segher Boessenkool Date: Tue, 4 Jun 2019 16:31:34 +0000 (+0200) Subject: rs6000: Delete Fv2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1598bfb0783d6ed34782981929d0c6b206698a1e;p=gcc.git rs6000: Delete Fv2 always is "wa". * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete. (rest of file): Adjust. From-SVN: r271918 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b9f1cb30198..7bea02896a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-06-04 Segher Boessenkool + + * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete. + (rest of file): Adjust. + 2019-06-04 Segher Boessenkool * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete. diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index a0628c12b52..8053d5a6db0 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -528,11 +528,6 @@ ; format. (define_mode_attr Fv [(SF "ww") (DF "wa") (DI "wa")]) -; SF/DF constraint for arithmetic on VSX registers. This is intended to be -; used for DFmode instructions added in ISA 2.06 (power7) and SFmode -; instructions added in ISA 2.07 (power8) -(define_mode_attr Fv2 [(SF "wa") (DF "wa") (DI "wa")]) - ; Which isa is needed for those float instructions? (define_mode_attr Fisa [(SF "p8v") (DF "*") (DI "*")]) @@ -4638,9 +4633,9 @@ "") (define_insn "*add3_fpr" - [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,") - (plus:SFDF (match_operand:SFDF 1 "gpc_reg_operand" "%,") - (match_operand:SFDF 2 "gpc_reg_operand" ",")))] + [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa") + (plus:SFDF (match_operand:SFDF 1 "gpc_reg_operand" "%,wa") + (match_operand:SFDF 2 "gpc_reg_operand" ",wa")))] "TARGET_HARD_FLOAT" "@ fadd %0,%1,%2 @@ -4656,9 +4651,9 @@ "") (define_insn "*sub3_fpr" - [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,") - (minus:SFDF (match_operand:SFDF 1 "gpc_reg_operand" ",") - (match_operand:SFDF 2 "gpc_reg_operand" ",")))] + [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa") + (minus:SFDF (match_operand:SFDF 1 "gpc_reg_operand" ",wa") + (match_operand:SFDF 2 "gpc_reg_operand" ",wa")))] "TARGET_HARD_FLOAT" "@ fsub %0,%1,%2 @@ -4674,9 +4669,9 @@ "") (define_insn "*mul3_fpr" - [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,") - (mult:SFDF (match_operand:SFDF 1 "gpc_reg_operand" "%,") - (match_operand:SFDF 2 "gpc_reg_operand" ",")))] + [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa") + (mult:SFDF (match_operand:SFDF 1 "gpc_reg_operand" "%,wa") + (match_operand:SFDF 2 "gpc_reg_operand" ",wa")))] "TARGET_HARD_FLOAT" "@ fmul %0,%1,%2 @@ -4700,9 +4695,9 @@ }) (define_insn "*div3_fpr" - [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,") - (div:SFDF (match_operand:SFDF 1 "gpc_reg_operand" ",") - (match_operand:SFDF 2 "gpc_reg_operand" ",")))] + [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa") + (div:SFDF (match_operand:SFDF 1 "gpc_reg_operand" ",wa") + (match_operand:SFDF 2 "gpc_reg_operand" ",wa")))] "TARGET_HARD_FLOAT" "@ fdiv %0,%1,%2 @@ -4711,8 +4706,8 @@ (set_attr "isa" "*,")]) (define_insn "*sqrt2_internal" - [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,") - (sqrt:SFDF (match_operand:SFDF 1 "gpc_reg_operand" ",")))] + [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa") + (sqrt:SFDF (match_operand:SFDF 1 "gpc_reg_operand" ",wa")))] "TARGET_HARD_FLOAT && TARGET_PPC_GPOPT" "@ fsqrt %0,%1 @@ -4739,8 +4734,8 @@ ;; Floating point reciprocal approximation (define_insn "fre" - [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,") - (unspec:SFDF [(match_operand:SFDF 1 "gpc_reg_operand" ",")] + [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa") + (unspec:SFDF [(match_operand:SFDF 1 "gpc_reg_operand" ",wa")] UNSPEC_FRES))] "TARGET_" "@ @@ -4750,8 +4745,8 @@ (set_attr "isa" "*,")]) (define_insn "*rsqrt2" - [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,") - (unspec:SFDF [(match_operand:SFDF 1 "gpc_reg_operand" ",")] + [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa") + (unspec:SFDF [(match_operand:SFDF 1 "gpc_reg_operand" ",wa")] UNSPEC_RSQRT))] "RS6000_RECIP_HAVE_RSQRTE_P (mode)" "@ @@ -4763,8 +4758,8 @@ ;; Floating point comparisons (define_insn "*cmp_fpr" [(set (match_operand:CCFP 0 "cc_reg_operand" "=y,y") - (compare:CCFP (match_operand:SFDF 1 "gpc_reg_operand" ",") - (match_operand:SFDF 2 "gpc_reg_operand" ",")))] + (compare:CCFP (match_operand:SFDF 1 "gpc_reg_operand" ",wa") + (match_operand:SFDF 2 "gpc_reg_operand" ",wa")))] "TARGET_HARD_FLOAT" "@ fcmpu %0,%1,%2 @@ -13374,11 +13369,11 @@ "") (define_insn "*fma4_fpr" - [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,,") + [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa,wa") (fma:SFDF - (match_operand:SFDF 1 "gpc_reg_operand" "%,,") - (match_operand:SFDF 2 "gpc_reg_operand" ",,0") - (match_operand:SFDF 3 "gpc_reg_operand" ",0,")))] + (match_operand:SFDF 1 "gpc_reg_operand" "%,wa,wa") + (match_operand:SFDF 2 "gpc_reg_operand" ",wa,0") + (match_operand:SFDF 3 "gpc_reg_operand" ",0,wa")))] "TARGET_HARD_FLOAT" "@ fmadd %0,%1,%2,%3 @@ -13398,11 +13393,11 @@ "") (define_insn "*fms4_fpr" - [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,,") + [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa,wa") (fma:SFDF - (match_operand:SFDF 1 "gpc_reg_operand" ",,") - (match_operand:SFDF 2 "gpc_reg_operand" ",,0") - (neg:SFDF (match_operand:SFDF 3 "gpc_reg_operand" ",0,"))))] + (match_operand:SFDF 1 "gpc_reg_operand" ",wa,wa") + (match_operand:SFDF 2 "gpc_reg_operand" ",wa,0") + (neg:SFDF (match_operand:SFDF 3 "gpc_reg_operand" ",0,wa"))))] "TARGET_HARD_FLOAT" "@ fmsub %0,%1,%2,%3 @@ -13445,12 +13440,12 @@ "") (define_insn "*nfma4_fpr" - [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,,") + [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa,wa") (neg:SFDF (fma:SFDF - (match_operand:SFDF 1 "gpc_reg_operand" ",,") - (match_operand:SFDF 2 "gpc_reg_operand" ",,0") - (match_operand:SFDF 3 "gpc_reg_operand" ",0,"))))] + (match_operand:SFDF 1 "gpc_reg_operand" ",wa,wa") + (match_operand:SFDF 2 "gpc_reg_operand" ",wa,0") + (match_operand:SFDF 3 "gpc_reg_operand" ",0,wa"))))] "TARGET_HARD_FLOAT" "@ fnmadd %0,%1,%2,%3 @@ -13471,13 +13466,13 @@ "") (define_insn "*nfmssf4_fpr" - [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,,") + [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa,wa") (neg:SFDF (fma:SFDF - (match_operand:SFDF 1 "gpc_reg_operand" ",,") - (match_operand:SFDF 2 "gpc_reg_operand" ",,0") + (match_operand:SFDF 1 "gpc_reg_operand" ",wa,wa") + (match_operand:SFDF 2 "gpc_reg_operand" ",wa,0") (neg:SFDF - (match_operand:SFDF 3 "gpc_reg_operand" ",0,")))))] + (match_operand:SFDF 3 "gpc_reg_operand" ",0,wa")))))] "TARGET_HARD_FLOAT" "@ fnmsub %0,%1,%2,%3