This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 11/12] @ieee_128bit_vsx_neg<mode>2


2019-07-01  Segher Boessenkool  <segher@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]