public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug rtl-optimization/115261] New: FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c @ 2024-05-28 14:49 stefansf at gcc dot gnu.org 2024-05-29 7:35 ` [Bug rtl-optimization/115261] [11/12/13/14/15 regression] " rguenth at gcc dot gnu.org ` (3 more replies) 0 siblings, 4 replies; 5+ messages in thread From: stefansf at gcc dot gnu.org @ 2024-05-28 14:49 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115261 Bug ID: 115261 Summary: FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: stefansf at gcc dot gnu.org Target Milestone: --- Target: s390*-*-* After r11-5821-gebdfd1606da6b5 multiple BIT_INSERT_EXPRs are vectorized which as a side-effect leads to the usage of V2SI which seems to be the culprit of an extra stack slot. For s390/vector/vec-abi-vararg-1.c we end up with (insn 11 10 12 2 (set (subreg:V2SI (reg:V4SI 73 [ _3 ]) 0) (plus:V2SI (mem:V2SI (plus:DI (reg/f:DI 32 %ap) (const_int 16 [0x10])) [0 MEM[(v2si * {ref-all})_26 + 16B]+0 S8 A64]) (mem:V2SI (plus:DI (reg/f:DI 32 %ap) (const_int 40 [0x28])) [0 MEM[(v2si * {ref-all})_26 + 40B]+0 S8 A64]))) "vec-abi-vararg-1.c":44:16 581 {addv2si3} (nil)) which reload needs to fix 11: r79:V2SI=r80:V2SI+r81:V2SI Inserting insn reload before: 26: r80:V2SI=[%ap:DI+0x170] 27: r81:V2SI=[%ap:DI+0x188] Inserting insn reload after: 25: r73:V4SI#0=r79:V2SI ... 12: r74:V2DI=sign_extend(vec_select(r82:V4SI,parallel)) REG_DEAD r73:V4SI Inserting insn reload before: 28: r82:V4SI=r73:V4SI which materializes as: (insn 10 14 24 2 (set (reg:V4SI 16 %f0 [orig:73 _3 ] [73]) (const_vector:V4SI [ (const_int 0 [0]) repeated x4 ])) "vec-abi-vararg-1.c":44:16 410 {movv4si} (expr_list:REG_EQUAL (const_vector:V4SI [ (const_int 0 [0]) repeated x4 ]) (nil))) (insn 24 10 26 2 (set (mem/c:V4SI (plus:DI (reg/f:DI 15 %r15) (const_int 160 [0xa0])) [4 %sfp+-48 S16 A64]) (reg:V4SI 16 %f0 [orig:73 _3 ] [73])) "vec-abi-vararg-1.c":44:16 410 {movv4si} (nil)) (insn 26 24 27 2 (set (reg:V2SI 16 %f0 [80]) (mem:V2SI (plus:DI (reg/f:DI 15 %r15) (const_int 384 [0x180])) [0 MEM[(v2si * {ref-all})_26 + 16B]+0 S8 A64])) "vec-abi-vararg-1.c":44:16 426 {movv2si} (nil)) (insn 27 26 11 2 (set (reg:V2SI 17 %f2 [81]) (mem:V2SI (plus:DI (reg/f:DI 15 %r15) (const_int 408 [0x198])) [0 MEM[(v2si * {ref-all})_26 + 40B]+0 S8 A64])) "vec-abi-vararg-1.c":44:16 426 {movv2si} (nil)) (insn 11 27 25 2 (set (reg:V2SI 16 %f0 [79]) (plus:V2SI (reg:V2SI 16 %f0 [80]) (reg:V2SI 17 %f2 [81]))) "vec-abi-vararg-1.c":44:16 581 {addv2si3} (nil)) (insn 25 11 28 2 (set (mem/c:V2SI (plus:DI (reg/f:DI 15 %r15) (const_int 160 [0xa0])) [4 %sfp+-48 S8 A64]) (reg:V2SI 16 %f0 [79])) "vec-abi-vararg-1.c":44:16 426 {movv2si} (nil)) (insn 28 25 12 2 (set (reg:V4SI 16 %f0 [orig:73 _3 ] [73]) (mem/c:V4SI (plus:DI (reg/f:DI 15 %r15) (const_int 160 [0xa0])) [4 %sfp+-48 S16 A64])) "vec-abi-vararg-1.c":44:16 410 {movv4si} (nil)) (insn 12 28 29 2 (set (reg:V2DI 16 %f0 [orig:74 _29 ] [74]) (sign_extend:V2DI (vec_select:V2SI (reg:V4SI 16 %f0 [orig:73 _3 ] [73]) (parallel [ (const_int 0 [0]) (const_int 1 [0x1]) ])))) "vec-abi-vararg-1.c":44:16 1345 {vec_unpacks_hi_v4si} (nil)) Insn 25 and 28 convert a V2SI into a V4SI via stack. It is a bit unfortunate since the resulting V4SI vector is used for unpacking which ignores the rightmost half, i.e., zeroing out the rightmost half by going over the stack is unnecessary. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug rtl-optimization/115261] [11/12/13/14/15 regression] FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c 2024-05-28 14:49 [Bug rtl-optimization/115261] New: FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c stefansf at gcc dot gnu.org @ 2024-05-29 7:35 ` rguenth at gcc dot gnu.org 2024-05-29 10:40 ` stefansf at gcc dot gnu.org ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: rguenth at gcc dot gnu.org @ 2024-05-29 7:35 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115261 Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Version|unknown |14.1.0 Target Milestone|--- |11.5 CC| |rguenth at gcc dot gnu.org --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- I suppose it's di_result[0] += si_result[0]; di_result[1] += si_result[1]; on x86 we do vect__5.11_99 = (vector(2) long long int) _100; vect__6.12_98 = _29 + vect__5.11_99; as we have a extendv2siv2di pattern. It's probably easier to try reproducing with a testcase not involving varargs but {di,si}_result initialized from incoming parameters? ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug rtl-optimization/115261] [11/12/13/14/15 regression] FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c 2024-05-28 14:49 [Bug rtl-optimization/115261] New: FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c stefansf at gcc dot gnu.org 2024-05-29 7:35 ` [Bug rtl-optimization/115261] [11/12/13/14/15 regression] " rguenth at gcc dot gnu.org @ 2024-05-29 10:40 ` stefansf at gcc dot gnu.org 2024-06-17 6:37 ` cvs-commit at gcc dot gnu.org 2024-06-24 8:12 ` stefansf at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: stefansf at gcc dot gnu.org @ 2024-05-29 10:40 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115261 --- Comment #2 from Stefan Schulze Frielinghaus <stefansf at gcc dot gnu.org> --- Thanks for the pointer. Indeed, adding an extendv2siv2di pattern solves this and the code looks optimal then. I will come up with a patch. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug rtl-optimization/115261] [11/12/13/14/15 regression] FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c 2024-05-28 14:49 [Bug rtl-optimization/115261] New: FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c stefansf at gcc dot gnu.org 2024-05-29 7:35 ` [Bug rtl-optimization/115261] [11/12/13/14/15 regression] " rguenth at gcc dot gnu.org 2024-05-29 10:40 ` stefansf at gcc dot gnu.org @ 2024-06-17 6:37 ` cvs-commit at gcc dot gnu.org 2024-06-24 8:12 ` stefansf at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2024-06-17 6:37 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115261 --- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>: https://gcc.gnu.org/g:2ab143df110a40bd41b5368ef84819953bf971b1 commit r15-1365-g2ab143df110a40bd41b5368ef84819953bf971b1 Author: Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> Date: Mon Jun 17 08:36:11 2024 +0200 s390: Extend two/four element integer vectors For the moment I deliberately left out one-element QHS vectors since it is unclear whether these are pathological cases or whether they are really used. If we ever get an extend for V1DI -> V1TI we should reconsider this. As a side-effect this fixes PR115261. gcc/ChangeLog: PR target/115261 * config/s390/s390.md (any_extend,extend_insn,zero_extend): New code attributes and code iterator. * config/s390/vector.md (V_EXTEND): New mode iterator. (<extend_insn><V_EXTEND:mode><vec_2x_wide>2): New insn. gcc/testsuite/ChangeLog: * gcc.target/s390/vector/vec-extend-1.c: New test. * gcc.target/s390/vector/vec-extend-2.c: New test. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug rtl-optimization/115261] [11/12/13/14/15 regression] FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c 2024-05-28 14:49 [Bug rtl-optimization/115261] New: FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c stefansf at gcc dot gnu.org ` (2 preceding siblings ...) 2024-06-17 6:37 ` cvs-commit at gcc dot gnu.org @ 2024-06-24 8:12 ` stefansf at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: stefansf at gcc dot gnu.org @ 2024-06-24 8:12 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115261 Stefan Schulze Frielinghaus <stefansf at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #4 from Stefan Schulze Frielinghaus <stefansf at gcc dot gnu.org> --- Fixed on mainline. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-06-24 8:12 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2024-05-28 14:49 [Bug rtl-optimization/115261] New: FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c stefansf at gcc dot gnu.org 2024-05-29 7:35 ` [Bug rtl-optimization/115261] [11/12/13/14/15 regression] " rguenth at gcc dot gnu.org 2024-05-29 10:40 ` stefansf at gcc dot gnu.org 2024-06-17 6:37 ` cvs-commit at gcc dot gnu.org 2024-06-24 8:12 ` stefansf at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).