From: Andreas Krebbel Date: Tue, 5 Feb 2019 17:14:11 +0000 (+0000) Subject: S/390: Remove load and test fp splitter X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=64c8e85aa5899eafa595be532275c1974e3f715a;p=gcc.git S/390: Remove load and test fp splitter gcc/ChangeLog: 2019-02-05 Andreas Krebbel PR target/88856 * config/s390/s390.md: Remove load and test FP splitter. From-SVN: r268550 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b3c2e7c46d3..137066a52f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-02-05 Andreas Krebbel + + PR target/88856 + * config/s390/s390.md: Remove load and test FP splitter. + 2019-02-05 Aaron Sawdey PR target/89112 diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md index 722d9241b7b..903367201f4 100644 --- a/gcc/config/s390/s390.md +++ b/gcc/config/s390/s390.md @@ -1357,10 +1357,11 @@ ; (TF|DF|SF|TD|DD|SD) instructions -; load and test instructions turn SNaN into QNaN what is not +; FIXME: load and test instructions turn SNaN into QNaN what is not ; acceptable if the target will be used afterwards. On the other hand ; they are quite convenient for implementing comparisons with 0.0. So -; try to enable them via splitter if the value isn't needed anymore. +; try to enable them via splitter/peephole if the value isn't needed anymore. +; See testcases: load-and-test-fp-1.c and load-and-test-fp-2.c ; ltxbr, ltdbr, ltebr, ltxtr, ltdtr (define_insn "*cmp_ccs_0" @@ -1373,22 +1374,6 @@ [(set_attr "op_type" "RRE") (set_attr "type" "fsimp")]) -(define_split - [(set (match_operand 0 "cc_reg_operand") - (compare (match_operand:FP 1 "register_operand") - (match_operand:FP 2 "const0_operand")))] - "TARGET_HARD_FLOAT && REG_P (operands[1]) && dead_or_set_p (insn, operands[1])" - [(parallel - [(set (match_dup 0) (match_dup 3)) - (clobber (match_dup 1))])] - { - /* s390_match_ccmode requires the compare to have the same CC mode - as the CC destination register. */ - operands[3] = gen_rtx_COMPARE (GET_MODE (operands[0]), - operands[1], operands[2]); - }) - - ; VX: TFmode in FPR pairs: use cxbr instead of wfcxb ; cxtr, cdtr, cxbr, cdbr, cebr, cdb, ceb, wfcsb, wfcdb (define_insn "*cmp_ccs"