[Bug target/92518] [10 regression] ppc rounding tests fail after r278207
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92518 Martin Liška changed: What|Removed |Added Status|REOPENED|ASSIGNED --- Comment #9 from Martin Liška --- I'll take a look.
[Bug target/92518] [10 regression] ppc rounding tests fail after r278207
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92518 --- Comment #8 from Segher Boessenkool --- I confirm this is caused by r278207.
[Bug target/92518] [10 regression] ppc rounding tests fail after r278207
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92518 --- Comment #7 from Segher Boessenkool --- Ah, -fdump-ipa-all-all . So it seems like ppc-round.c.072i.icf is what is wrong; it says Equals called for: round_float_uint/3:round_float_int/1 with result: true Equals called for: round_double_uint/2:round_double_int/0 with result: true (that is the first thing wrong I see).
[Bug target/92518] [10 regression] ppc rounding tests fail after r278207
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92518 --- Comment #6 from Segher Boessenkool --- It is still okay in ppc-round.c.048t.local-fnsummary2 but it is wrong in ppc-round.c.088t.fixup_cfg3 (the pass immediately after it, at -O2).
[Bug target/92518] [10 regression] ppc rounding tests fail after r278207
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92518 --- Comment #5 from Segher Boessenkool --- Actually, this is simply wrong. === ;; Function round_double_uint (round_double_uint, funcdef_no=5, decl_uid=2879, cgraph_uid=3, symbol_order=2) round_double_uint (double a) { int _4; double _5; ;; basic block 2, loop depth 0 ;;pred: ENTRY _4 = (int) a_1(D); _5 = (double) _4; return _5; ;;succ: EXIT } === It is wrong in gimple already (should be unsigned int, not int).
[Bug target/92518] [10 regression] ppc rounding tests fail after r278207
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92518 seurer at gcc dot gnu.org changed: What|Removed |Added Target|powerpc64-linux-gnu |powerpc64*-linux-gnu Status|RESOLVED|REOPENED CC||segher at gcc dot gnu.org Host|powerpc64-linux-gnu |powerpc64*-linux-gnu Resolution|DUPLICATE |--- Build|powerpc64-linux-gnu |powerpc64*-linux-gnu --- Comment #4 from seurer at gcc dot gnu.org --- The fix for pr92529 does not fix these. What changed is some of the instructions generated. For example, in gcc.target/powerpc/ppc-round.c round_double_uint: .LFB2: .cfi_startproc fctiwuz 1,1 addi 9,1,-16 stfiwx 1,0,9 ori 2,2,0 lfiwzx 1,0,9 fcfid 1,1 blr became round_double_uint: .LFB5: .cfi_startproc fctiwz 1,1 addi 9,1,-16 stfiwx 1,0,9 ori 2,2,0 lfiwax 1,0,9 fcfid 1,1 blr They both apparently work (albeit aren't close to optimal). So I think the solution here is to update the expected instruction counts and maybe make a TODO somewhere to see if the generated code could be made better.
[Bug target/92518] [10 regression] ppc rounding tests fail after r278207
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92518 Martin Liška changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |DUPLICATE --- Comment #3 from Martin Liška --- Dup. *** This bug has been marked as a duplicate of bug 92529 ***
[Bug target/92518] [10 regression] ppc rounding tests fail after r278207
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92518 Richard Biener changed: What|Removed |Added Target Milestone|--- |10.0
[Bug target/92518] [10 regression] ppc rounding tests fail after r278207
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92518 Martin Liška changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2019-11-15 Assignee|unassigned at gcc dot gnu.org |marxin at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Martin Liška --- I'll take a look.
[Bug target/92518] [10 regression] ppc rounding tests fail after r278207
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92518 seurer at gcc dot gnu.org changed: What|Removed |Added CC||marxin at gcc dot gnu.org Summary|[10 regression] ppc |[10 regression] ppc |rounding tests fail on |rounding tests fail after |power 7 (only) after|r278207 |r278207 | --- Comment #1 from seurer at gcc dot gnu.org --- Upon further testing they fail on power 8 and 9 as well as power 7 both BE and LE.