https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109549

Jeffrey A. Law <law at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|x86_64-*-*                  |s390
            Summary|[14 Regression] cmov6.c     |[14 Regression] Conditional
                   |test fail after commit      |move regressions after
                   |r14-53-g675b1a7f113adb1d737 |r14-53-g675b1a7f113adb1d737
                   |adaf78b4fd90be7a0ed1a       |adaf78b4fd90be7a0ed1a

--- Comment #9 from Jeffrey A. Law <law at gcc dot gnu.org> ---
WRT the s390 failures:

gcc.target/s390/arch13/sel-1.c scan-assembler-times \tselgr(?:h|le)\t 1
gcc.target/s390/arch13/sel-1.c scan-assembler-times \tselr(?:h|le)\t 1
gcc.target/s390/ifcvt-one-insn-bool.c scan-assembler lochinh\t%r.?,1
gcc.target/s390/ifcvt-one-insn-char.c scan-assembler locrnh\t%r.?,%r.?
gcc.target/s390/loc-1.c scan-assembler \tlochine\t%r2,-1
gcc.target/s390/loc-1.c scan-assembler \tlocrne\t%r2,%r4
gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler
eq:\n[^:]*\twfcdb\t%v[0-9]*,%v[0-9]*\n\t[^:]+\tlochie\t%r2,1
gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler
ge:\n[^:]*\twfkdb\t%v[0-9]*,%v[0-9]*\n\t[^:]+\tlochihe\t%r2,1
gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler
gt:\n[^:]*\twfkdb\t%v[0-9]*,%v[0-9]*\n\t[^:]+\tlochih\t%r2,1
gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler
le:\n[^:]*\twfkdb\t%v[0-9]*,%v[0-9]*\n\t[^:]+\tlochile\t%r2,1
gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler
lt:\n[^:]*\twfkdb\t%v[0-9]*,%v[0-9]*\n\t[^:]+\tlochil\t%r2,1
gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler
ne:\n[^:]*\twfcdb\t%v[0-9]*,%v[0-9]*\n\t[^:]+\tlochine\t%r2,1

These are also cases where the s390 cost model says these particular
if-conversion opportunities aren't profitable.   Basically the backend has no
costing model for (set (if_then_else ...))  so it recursively computes the cost
of all the sub-rtxs which ultimately turns out to be higher than the cost of
the branchy code.

I'm not qualified to address this problem as I have no sense of s390 costing. 
I'm going to have the tester regenerate new baselines for s390, but I'm not
going to actively try to fix this problem.  Also note my testing was s390, not
s390x which may be behaving differently.

Reply via email to