[Bug bootstrap/97502] [11 Regression] PGO bootstrap failure on s390x-linux with -march=z13 starting with r11-3426
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97502 Richard Biener changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #9 from Richard Biener --- Fixed.
[Bug bootstrap/97502] [11 Regression] PGO bootstrap failure on s390x-linux with -march=z13 starting with r11-3426
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97502 --- Comment #8 from CVS Commits --- The master branch has been updated by Andreas Krebbel : https://gcc.gnu.org/g:f3cf5174b19a89aeed5aa2ba82a373ded35a4a96 commit r11-4224-gf3cf5174b19a89aeed5aa2ba82a373ded35a4a96 Author: Andreas Krebbel Date: Thu Oct 22 12:24:22 2020 +0200 Fix PR97502 The S/390 backend does not define vec_cmp expanders so far. We relied solely on expanding vcond. With commit 502d63b6d various testcases started to ICE now. This patch just adds the missing expanders to prevent the ICE. However, there are still a couple of performance-related testcase regressions with the vcond lowering which have to be fixed independently. gcc/ChangeLog: PR target/97502 * config/s390/vector.md ("vec_cmp") ("vec_cmpu"): New expanders. gcc/testsuite/ChangeLog: * gcc.dg/pr97502.c: New test.
[Bug bootstrap/97502] [11 Regression] PGO bootstrap failure on s390x-linux with -march=z13 starting with r11-3426
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97502 Andreas Krebbel changed: What|Removed |Added Last reconfirmed||2020-10-21 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #7 from Andreas Krebbel --- The vec_cmp* expanders in vx-builtins.md are only supposed to be used for expanding the builtins. Unfortunately the names appear to collide with the rtx standard names to some degree. I will try to implement the standard name patterns and direct builtin expansion to them instead.
[Bug bootstrap/97502] [11 Regression] PGO bootstrap failure on s390x-linux with -march=z13 starting with r11-3426
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97502 --- Comment #6 from Jakub Jelinek --- With --- gcc/config/s390/vx-builtins.md.jj 2020-04-30 09:26:01.0 +0200 +++ gcc/config/s390/vx-builtins.md 2020-10-20 16:08:31.847698827 +0200 @@ -812,6 +812,16 @@ DONE; }) +(define_expand "vec_cmp" + [(set (match_operand:VI_HW 0 "register_operand" "=v") + (intcmp:VI_HW (match_operand:VI_HW 1 "register_operand" "v") + (match_operand:VI_HW 2 "register_operand" "v")))] + "TARGET_VX" +{ + s390_expand_vec_compare (operands[0], , operands[1], operands[2]); + DONE; +}) + (define_expand "vec_cmp" [(set (match_operand: 0 "register_operand" "=v") (fpcmp: (match_operand:VF_HW 1 "register_operand" "v") (couldn't just change the existing pattern easily as s390.c refers to the current names) the testcase doesn't ICE anymore, but whether it does the right thing is unclear. Anyway, deferring to s390x maintainers now.
[Bug bootstrap/97502] [11 Regression] PGO bootstrap failure on s390x-linux with -march=z13 starting with r11-3426
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97502 --- Comment #5 from Jakub Jelinek --- The vector comparison optabs are: OPTAB_CD(vec_cmp_optab, "vec_cmp$a$b") OPTAB_CD(vec_cmpu_optab, "vec_cmpu$a$b") OPTAB_CD(vec_cmpeq_optab, "vec_cmpeq$a$b") therefore they need two modes in their names - the first one is the value mode and the second one is the mask mode. But then the backend defines named patterns like: vec_cmpeqv16qi rather than vec_cmpeqv16qiv16qi I'd expect.
[Bug bootstrap/97502] [11 Regression] PGO bootstrap failure on s390x-linux with -march=z13 starting with r11-3426
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97502 --- Comment #4 from Richard Biener --- Or rather, it doesn't make sense to not have vec_cmp[u]{,eq} optabs.
[Bug bootstrap/97502] [11 Regression] PGO bootstrap failure on s390x-linux with -march=z13 starting with r11-3426
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97502 Richard Biener changed: What|Removed |Added CC||krebbel at gcc dot gnu.org --- Comment #3 from Richard Biener --- So it looks like vcond_ expand to a vector compare + vsel so it doesn't make sense that vcond_ accepts cases that vcmp_ expanders reject.
[Bug bootstrap/97502] [11 Regression] PGO bootstrap failure on s390x-linux with -march=z13 starting with r11-3426
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97502 --- Comment #2 from Richard Biener --- So the following is problematic: vector(16) _12; vector(16) _14; vector(16) _32; _14 = vect__1.7_3 != { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; _12 = vect__2.10_15 == { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; _32 = VEC_COND_EXPR <_12, _14, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }>; using a VEC_COND_EXPR to combine two vector bools to another vector bool. The above could be folded to ~_12 & _14 instead.
[Bug bootstrap/97502] [11 Regression] PGO bootstrap failure on s390x-linux with -march=z13 starting with r11-3426
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97502 Martin Liška changed: What|Removed |Added CC||marxin at gcc dot gnu.org, ||rguenth at gcc dot gnu.org --- Comment #1 from Martin Liška --- Maybe a dup of PR97270?
[Bug bootstrap/97502] [11 Regression] PGO bootstrap failure on s390x-linux with -march=z13 starting with r11-3426
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97502 Jakub Jelinek changed: What|Removed |Added Target Milestone|--- |11.0 Priority|P3 |P1