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.