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

Reply via email to