[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 Jakub Jelinek changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED|RESOLVED --- Comment #10 from Jakub Jelinek --- .
[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 Uroš Bizjak changed: What|Removed |Added Target Milestone|14.0|11.5 --- Comment #9 from Uroš Bizjak --- Fixed everywhere.
[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 --- Comment #8 from CVS Commits --- The releases/gcc-11 branch has been updated by Uros Bizjak : https://gcc.gnu.org/g:422e30e4d5ca2f26f77e7c90e09658408c07a23c commit r11-1-g422e30e4d5ca2f26f77e7c90e09658408c07a23c Author: Uros Bizjak Date: Thu Nov 23 16:17:57 2023 +0100 i386: Wrong code with __builtin_parityl [PR112672] gen_parityhi2_cmp instruction clobbers its input operand, so use a temporary register in the call to gen_parityhi2_cmp. PR target/112672 gcc/ChangeLog: * config/i386/i386.md (parityhi2): Use temporary register in the call to gen_parityhi2_cmp. gcc/testsuite/ChangeLog: * gcc.target/i386/pr112672.c: New test. (cherry picked from commit b2d17bdd45b582b93e89c00b04763a45f97d7a34)
[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 --- Comment #7 from CVS Commits --- The releases/gcc-12 branch has been updated by Uros Bizjak : https://gcc.gnu.org/g:f0445f4401c941d0aa3cc413ca4548f313cc1257 commit r12-10001-gf0445f4401c941d0aa3cc413ca4548f313cc1257 Author: Uros Bizjak Date: Thu Nov 23 16:17:57 2023 +0100 i386: Wrong code with __builtin_parityl [PR112672] gen_parityhi2_cmp instruction clobbers its input operand, so use a temporary register in the call to gen_parityhi2_cmp. PR target/112672 gcc/ChangeLog: * config/i386/i386.md (parityhi2): Use temporary register in the call to gen_parityhi2_cmp. gcc/testsuite/ChangeLog: * gcc.target/i386/pr112672.c: New test. (cherry picked from commit b2d17bdd45b582b93e89c00b04763a45f97d7a34)
[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 --- Comment #6 from CVS Commits --- The releases/gcc-13 branch has been updated by Uros Bizjak : https://gcc.gnu.org/g:d035b57d51167af805ccc91ee0492c8b27e22184 commit r13-8092-gd035b57d51167af805ccc91ee0492c8b27e22184 Author: Uros Bizjak Date: Thu Nov 23 16:17:57 2023 +0100 i386: Wrong code with __builtin_parityl [PR112672] gen_parityhi2_cmp instruction clobbers its input operand, so use a temporary register in the call to gen_parityhi2_cmp. PR target/112672 gcc/ChangeLog: * config/i386/i386.md (parityhi2): Use temporary register in the call to gen_parityhi2_cmp. gcc/testsuite/ChangeLog: * gcc.target/i386/pr112672.c: New test. (cherry picked from commit b2d17bdd45b582b93e89c00b04763a45f97d7a34)
[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 --- Comment #5 from CVS Commits --- The master branch has been updated by Uros Bizjak : https://gcc.gnu.org/g:b2d17bdd45b582b93e89c00b04763a45f97d7a34 commit r14-5785-gb2d17bdd45b582b93e89c00b04763a45f97d7a34 Author: Uros Bizjak Date: Thu Nov 23 16:17:57 2023 +0100 i386: Wrong code with __builtin_parityl [PR112672] gen_parityhi2_cmp instruction clobbers its input operand, so use a temporary register in the call to gen_parityhi2_cmp. PR target/112672 gcc/ChangeLog: * config/i386/i386.md (parityhi2): Use temporary register in the call to gen_parityhi2_cmp. gcc/testsuite/ChangeLog: * gcc.target/i386/pr112672.c: New test.
[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 Uroš Bizjak changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |ubizjak at gmail dot com --- Comment #4 from Uroš Bizjak --- (In reply to Andrew Pinski from comment #3) > parityhi2 should have: > rtx extra = gen_reg_rtx (HImode); > emit_move_insn (extra, operands[1]); > emit_insn (gen_parityhi2_cmp (extra)); > > Or something similar because parityqi2_cmp clobbers its argument. Exactly. I have a patch in testing.
[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 Richard Biener changed: What|Removed |Added Priority|P3 |P1
[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 --- Comment #3 from Andrew Pinski --- parityhi2 should have: rtx extra = gen_reg_rtx (HImode); emit_move_insn (extra, operands[1]); emit_insn (gen_parityhi2_cmp (extra)); Or something similar because parityqi2_cmp clobbers its argument.
[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 Andrew Pinski changed: What|Removed |Added CC||uros at gcc dot gnu.org --- Comment #2 from Andrew Pinski --- Actually it has been wrong since r11-1027-gf08995eefbf579 . Just exposed by Jakub's parity improvement: r14-5557-g6dd4c703be17fa .
[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2023-11-23 Ever confirmed|0 |1 --- Comment #1 from Andrew Pinski --- Obvious this is wrong: ;; _5 = .PARITY (u_4); (insn 7 6 8 (parallel [ (set (reg:CC 17 flags) (unspec:CC [ (reg/v:HI 99 [ uD.2808 ]) ] UNSPEC_PARITY)) (clobber (reg/v:HI 99 [ uD.2808 ])) ]) "/app/example.cpp":9:32 -1 (nil)) ... ;; if (_7 != 1017) (insn 11 10 12 (parallel [ (set (reg:HI 107) (plus:HI (reg/v:HI 99 [ uD.2808 ]) (subreg:HI (reg:SI 100 [ _5 ]) 0))) (clobber (reg:CC 17 flags)) ]) "/app/example.cpp":9:34 discrim 1 -1 (nil))
[Bug target/112672] [14 Regression] wrong code with __builtin_parityl() at -O and above on x86_64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112672 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |14.0 CC||pinskia at gcc dot gnu.org