2019-07-01 Segher Boessenkool <seg...@kernel.crashing.org> * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a parameterized name. (neg<mode>2): Use that name. Simplify.
--- gcc/config/rs6000/rs6000.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 974f0b1..86acaae 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -8070,14 +8070,8 @@ (define_expand "neg<mode>2" if (TARGET_FLOAT128_HW) emit_insn (gen_neg2_hw (<MODE>mode, operands[0], operands[1])); else if (TARGET_FLOAT128_TYPE) - { - if (<MODE>mode == TFmode) - emit_insn (gen_ieee_128bit_vsx_negtf2 (operands[0], operands[1])); - else if (<MODE>mode == KFmode) - emit_insn (gen_ieee_128bit_vsx_negkf2 (operands[0], operands[1])); - else - gcc_unreachable (); - } + emit_insn (gen_ieee_128bit_vsx_neg2 (<MODE>mode, + operands[0], operands[1])); else { rtx libfunc = optab_libfunc (neg_optab, <MODE>mode); @@ -8189,7 +8183,7 @@ (define_expand "ieee_128bit_negative_zero" ;; twiddle the sign bit. Later GCSE passes can then combine multiple uses of ;; neg/abs to create the constant just once. -(define_insn_and_split "ieee_128bit_vsx_neg<mode>2" +(define_insn_and_split "@ieee_128bit_vsx_neg<mode>2" [(set (match_operand:IEEE128 0 "register_operand" "=wa") (neg:IEEE128 (match_operand:IEEE128 1 "register_operand" "wa"))) (clobber (match_scratch:V16QI 2 "=v"))] -- 1.8.3.1