public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug target/104441] New: [12 Regression] vzeroupper is placed at the wrong place @ 2022-02-08 14:01 hjl.tools at gmail dot com 2022-02-08 14:01 ` [Bug target/104441] " hjl.tools at gmail dot com ` (7 more replies) 0 siblings, 8 replies; 9+ messages in thread From: hjl.tools at gmail dot com @ 2022-02-08 14:01 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104441 Bug ID: 104441 Summary: [12 Regression] vzeroupper is placed at the wrong place Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com CC: crazylht at gmail dot com, lili.cui at intel dot com Target Milestone: --- Target: x86-64 Created attachment 52375 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52375&action=edit A testcase When compiled with -march=skylake -Wno-attributes, GCC 12 generated: .L3: vmovd (%rdi), %xmm0 vmovd (%rdi,%r13), %xmm1 vpinsrd $1, (%rdi,%r12), %xmm1, %xmm1 vpinsrd $1, (%rdi,%rsi), %xmm0, %xmm0 vmovd (%rax,%rbx), %xmm2 vinserti128 $0x1, %xmm1, %ymm0, %ymm0 vmovd (%rax), %xmm1 vpinsrd $1, (%rax,%rcx), %xmm1, %xmm1 vpinsrd $1, (%rax,%r11), %xmm2, %xmm2 addl $4, %edx vinserti128 $0x1, %xmm2, %ymm1, %ymm1 vpsadbw %ymm1, %ymm0, %ymm0 vpaddd %ymm0, %ymm3, %ymm0 vmovdqa %ymm0, %ymm3 addq %r10, %rdi addq %r9, %rax cmpl %r8d, %edx jb .L3 vzeroupper <<<<<<<<<<< Clear upper 128bits. popq %rbx popq %r12 vextracti128 $0x1, %ymm3, %xmm3 << The upper 128bits of YMM3 are used. vpaddd %xmm3, %xmm0, %xmm0 popq %r13 vmovd %xmm0, %eax popq %rbp This is triggered by commit 9775e465c1fbfc32656de77c618c61acf5bd905d Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue Jul 27 07:46:04 2021 -0700 x86: Don't set AVX_U128_DIRTY when zeroing YMM/ZMM register ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug target/104441] [12 Regression] vzeroupper is placed at the wrong place 2022-02-08 14:01 [Bug target/104441] New: [12 Regression] vzeroupper is placed at the wrong place hjl.tools at gmail dot com @ 2022-02-08 14:01 ` hjl.tools at gmail dot com 2022-02-08 14:30 ` hjl.tools at gmail dot com ` (6 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: hjl.tools at gmail dot com @ 2022-02-08 14:01 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104441 H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |12.0 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Priority|P3 |P2 Last reconfirmed| |2022-02-08 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug target/104441] [12 Regression] vzeroupper is placed at the wrong place 2022-02-08 14:01 [Bug target/104441] New: [12 Regression] vzeroupper is placed at the wrong place hjl.tools at gmail dot com 2022-02-08 14:01 ` [Bug target/104441] " hjl.tools at gmail dot com @ 2022-02-08 14:30 ` hjl.tools at gmail dot com 2022-02-08 16:08 ` hjl.tools at gmail dot com ` (5 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: hjl.tools at gmail dot com @ 2022-02-08 14:30 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104441 --- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> --- ix86_check_avx_upper_register doesn't check (vec_select:V2DI (reg/v:V4DI 23 xmm3 [orig:91 ymm ] [91]) (parallel [ (const_int 2 [0x2]) (const_int 3 [0x3]) ])) ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug target/104441] [12 Regression] vzeroupper is placed at the wrong place 2022-02-08 14:01 [Bug target/104441] New: [12 Regression] vzeroupper is placed at the wrong place hjl.tools at gmail dot com 2022-02-08 14:01 ` [Bug target/104441] " hjl.tools at gmail dot com 2022-02-08 14:30 ` hjl.tools at gmail dot com @ 2022-02-08 16:08 ` hjl.tools at gmail dot com 2022-02-09 7:28 ` rguenth at gcc dot gnu.org ` (4 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: hjl.tools at gmail dot com @ 2022-02-08 16:08 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104441 --- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> --- Created attachment 52376 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52376&action=edit A patch I am testing this. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug target/104441] [12 Regression] vzeroupper is placed at the wrong place 2022-02-08 14:01 [Bug target/104441] New: [12 Regression] vzeroupper is placed at the wrong place hjl.tools at gmail dot com ` (2 preceding siblings ...) 2022-02-08 16:08 ` hjl.tools at gmail dot com @ 2022-02-09 7:28 ` rguenth at gcc dot gnu.org 2022-02-09 12:30 ` cvs-commit at gcc dot gnu.org ` (3 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: rguenth at gcc dot gnu.org @ 2022-02-09 7:28 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104441 Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P2 |P1 Keywords| |wrong-code Target|x86-64 |x86_64-*-* i?86-*-* ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug target/104441] [12 Regression] vzeroupper is placed at the wrong place 2022-02-08 14:01 [Bug target/104441] New: [12 Regression] vzeroupper is placed at the wrong place hjl.tools at gmail dot com ` (3 preceding siblings ...) 2022-02-09 7:28 ` rguenth at gcc dot gnu.org @ 2022-02-09 12:30 ` cvs-commit at gcc dot gnu.org 2022-02-09 12:41 ` hjl.tools at gmail dot com ` (2 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2022-02-09 12:30 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104441 --- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by H.J. Lu <hjl@gcc.gnu.org>: https://gcc.gnu.org/g:5390a2f191682dae3c6d1e1deac20e05be413514 commit r12-7125-g5390a2f191682dae3c6d1e1deac20e05be413514 Author: H.J. Lu <hjl.tools@gmail.com> Date: Sun Jan 30 10:08:14 2022 -0800 x86: Check each component of source operand for AVX_U128_DIRTY commit 9775e465c1fbfc32656de77c618c61acf5bd905d Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue Jul 27 07:46:04 2021 -0700 x86: Don't set AVX_U128_DIRTY when zeroing YMM/ZMM register called ix86_check_avx_upper_register to check mode on source operand. But ix86_check_avx_upper_register doesn't work on source operand like (vec_select:V2DI (reg/v:V4DI 23 xmm3 [orig:91 ymm ] [91]) (parallel [ (const_int 2 [0x2]) (const_int 3 [0x3]) ])) Add ix86_avx_u128_mode_source to check mode for each component of source operand. gcc/ PR target/104441 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function. (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN. Call ix86_avx_u128_mode_source to check mode for each component of source operand. gcc/testsuite/ PR target/104441 * gcc.target/i386/pr104441-1a.c: New test. * gcc.target/i386/pr104441-1b.c: Likewise. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug target/104441] [12 Regression] vzeroupper is placed at the wrong place 2022-02-08 14:01 [Bug target/104441] New: [12 Regression] vzeroupper is placed at the wrong place hjl.tools at gmail dot com ` (4 preceding siblings ...) 2022-02-09 12:30 ` cvs-commit at gcc dot gnu.org @ 2022-02-09 12:41 ` hjl.tools at gmail dot com 2022-02-09 19:53 ` cvs-commit at gcc dot gnu.org 2022-05-23 23:57 ` cvs-commit at gcc dot gnu.org 7 siblings, 0 replies; 9+ messages in thread From: hjl.tools at gmail dot com @ 2022-02-09 12:41 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104441 H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> --- Fixed. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug target/104441] [12 Regression] vzeroupper is placed at the wrong place 2022-02-08 14:01 [Bug target/104441] New: [12 Regression] vzeroupper is placed at the wrong place hjl.tools at gmail dot com ` (5 preceding siblings ...) 2022-02-09 12:41 ` hjl.tools at gmail dot com @ 2022-02-09 19:53 ` cvs-commit at gcc dot gnu.org 2022-05-23 23:57 ` cvs-commit at gcc dot gnu.org 7 siblings, 0 replies; 9+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2022-02-09 19:53 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104441 --- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by H.J. Lu <hjl@gcc.gnu.org>: https://gcc.gnu.org/g:354349e7d59323559d0e372484f10358bd86a54f commit r12-7149-g354349e7d59323559d0e372484f10358bd86a54f Author: H.J. Lu <hjl.tools@gmail.com> Date: Wed Feb 9 11:48:58 2022 -0800 x86: Compile PR target/104441 tests with -march=x86-64 Compile PR target/104441 tests with -march=x86-64 to fix test failures when GCC is configured with --with-arch=native --with-cpu=native. PR target/104441 * gcc.target/i386/pr104441-1a.c: Compile with -march=x86-64. * gcc.target/i386/pr104441-1b.c: Likewise. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug target/104441] [12 Regression] vzeroupper is placed at the wrong place 2022-02-08 14:01 [Bug target/104441] New: [12 Regression] vzeroupper is placed at the wrong place hjl.tools at gmail dot com ` (6 preceding siblings ...) 2022-02-09 19:53 ` cvs-commit at gcc dot gnu.org @ 2022-05-23 23:57 ` cvs-commit at gcc dot gnu.org 7 siblings, 0 replies; 9+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2022-05-23 23:57 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104441 --- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by H.J. Lu <hjl@gcc.gnu.org>: https://gcc.gnu.org/g:f1a80c05db8b08e71741bae8170f9e77e94bfc35 commit r13-718-gf1a80c05db8b08e71741bae8170f9e77e94bfc35 Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon May 23 10:42:33 2022 -0700 x86: Avoid uninitialized variable in PR target/104441 test PR target/104441 * gcc.target/i386/pr104441-1a.c (load8bit_4x4_avx2): Initialize src23. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-05-23 23:57 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-02-08 14:01 [Bug target/104441] New: [12 Regression] vzeroupper is placed at the wrong place hjl.tools at gmail dot com 2022-02-08 14:01 ` [Bug target/104441] " hjl.tools at gmail dot com 2022-02-08 14:30 ` hjl.tools at gmail dot com 2022-02-08 16:08 ` hjl.tools at gmail dot com 2022-02-09 7:28 ` rguenth at gcc dot gnu.org 2022-02-09 12:30 ` cvs-commit at gcc dot gnu.org 2022-02-09 12:41 ` hjl.tools at gmail dot com 2022-02-09 19:53 ` cvs-commit at gcc dot gnu.org 2022-05-23 23:57 ` cvs-commit 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).