One more I forgot to send before.

Segher


2019-07-01  Segher Boessenkool  <seg...@kernel.crashing.org>

        * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
        parameterized name.
        (signbit<mode>2): Use that name.  Simplify.

---
 gcc/config/rs6000/rs6000.md | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 9ab9ceb..9e81df9 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -4857,13 +4857,7 @@ (define_expand "signbit<mode>2"
       rtx tmp = gen_reg_rtx (DImode);
       rtx dest_di = gen_lowpart (DImode, dest);
 
-      if (<MODE>mode == KFmode)
-       emit_insn (gen_signbitkf2_dm (tmp, src));
-      else if (<MODE>mode == TFmode)
-       emit_insn (gen_signbittf2_dm (tmp, src));
-      else
-       gcc_unreachable ();
-
+      emit_insn (gen_signbit2_dm (<MODE>mode, tmp, src));
       emit_insn (gen_lshrdi3 (dest_di, tmp, GEN_INT (63)));
       DONE;
     }
@@ -4893,7 +4887,7 @@ (define_expand "signbit<mode>2"
 ;; After register allocation, if the _Float128 had originally been in GPRs, the
 ;; split allows the post reload phases to eliminate the move, and do the shift
 ;; directly with the register that contains the signbit.
-(define_insn_and_split "signbit<mode>2_dm"
+(define_insn_and_split "@signbit<mode>2_dm"
   [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (unspec:DI [(match_operand:SIGNBIT 1 "gpc_reg_operand" "wa,r")]
                   UNSPEC_SIGNBIT))]
-- 
1.8.3.1

Reply via email to