public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/59754] New: [ree.c] Incorrect merge while working with vector registers
@ 2014-01-10 11:14 kirill.yukhin at intel dot com
2014-01-10 11:18 ` [Bug rtl-optimization/59754] " kirill.yukhin at intel dot com
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: kirill.yukhin at intel dot com @ 2014-01-10 11:14 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59754
Bug ID: 59754
Summary: [ree.c] Incorrect merge while working with vector
registers
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: kirill.yukhin at intel dot com
Hello,
It seems that this revision:
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206418
138bc75d-0d04-0410-961f-82ee72b054a4
made bunch of AVX-512F tests failing (at runtime):
The difference in assembler is as following.
For good (prev. rev., testname: gcc.target/i386/avx512f-vpmovzxwd-2.c):
...
vmovdqa 160(%esp), %ymm0
movl $-22854, %eax
leal 384(%esp), %ebx
kmovw %eax, %k1
xorl %edx, %edx
vpmovzxwd %ymm0, %zmm1
vmovdqa64 %zmm1, 192(%esp)
vmovdqa64 256(%esp), %zmm1
vpmovzxwd %ymm0, %zmm1{%k1}
vpmovzxwd %ymm0, %zmm0{%k1}{z}
vmovdqa64 %zmm1, 256(%esp)
vmovdqa64 %zmm0, 320(%esp)
...
For broken:
...
vpmovzxwd 160(%esp), %zmm1
movl $-22854, %eax
leal 384(%esp), %ebx
kmovw %eax, %k1
xorl %edx, %edx
vmovdqa64 %zmm1, %zmm0
vmovdqa64 %zmm1, 192(%esp)
vmovdqa64 256(%esp), %zmm1
vpmovzxwd %ymm0, %zmm1{%k1}
vpmovzxwd %ymm0, %zmm0{%k1}{z}
vmovdqa64 %zmm1, 256(%esp)
vmovdqa64 %zmm0, 320(%esp)
...
So it seems that it is allowed to convert:
(set r0 [mem])
(set r1 sign_extend (r0))
to:
(set r1 sign_extend ([mem]))
(set r0 r1)
IMHO this should work with scalar, but not with vectors.
I suspect eliminating such extends for vector types were
prohibited initially.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug rtl-optimization/59754] [ree.c] Incorrect merge while working with vector registers
2014-01-10 11:14 [Bug rtl-optimization/59754] New: [ree.c] Incorrect merge while working with vector registers kirill.yukhin at intel dot com
@ 2014-01-10 11:18 ` kirill.yukhin at intel dot com
2014-01-10 12:56 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: kirill.yukhin at intel dot com @ 2014-01-10 11:18 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59754
--- Comment #1 from Yukhin Kirill <kirill.yukhin at intel dot com> ---
> made bunch of AVX-512F tests failing (at runtime):
FAIL: gcc.target/i386/avx512f-vpmovsxdq-2.c execution test
FAIL: gcc.target/i386/avx512f-vpmovsxwd-2.c execution test
FAIL: gcc.target/i386/avx512f-vpmovzxdq-2.c execution test
FAIL: gcc.target/i386/avx512f-vpmovzxwd-2.c execution test
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug rtl-optimization/59754] [ree.c] Incorrect merge while working with vector registers
2014-01-10 11:14 [Bug rtl-optimization/59754] New: [ree.c] Incorrect merge while working with vector registers kirill.yukhin at intel dot com
2014-01-10 11:18 ` [Bug rtl-optimization/59754] " kirill.yukhin at intel dot com
@ 2014-01-10 12:56 ` jakub at gcc dot gnu.org
2014-01-10 21:19 ` law at redhat dot com
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-01-10 12:56 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59754
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 31795
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31795&action=edit
gcc49-pr59754.patch
Untested fix. Tried to think if the other (older) REE transformations aren't
wrong for vector modes, but haven't found anything yet.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug rtl-optimization/59754] [ree.c] Incorrect merge while working with vector registers
2014-01-10 11:14 [Bug rtl-optimization/59754] New: [ree.c] Incorrect merge while working with vector registers kirill.yukhin at intel dot com
2014-01-10 11:18 ` [Bug rtl-optimization/59754] " kirill.yukhin at intel dot com
2014-01-10 12:56 ` jakub at gcc dot gnu.org
@ 2014-01-10 21:19 ` law at redhat dot com
2014-01-10 21:28 ` jakub at gcc dot gnu.org
2014-01-10 21:41 ` law at redhat dot com
4 siblings, 0 replies; 6+ messages in thread
From: law at redhat dot com @ 2014-01-10 21:19 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59754
--- Comment #3 from Jeffrey A. Law <law at redhat dot com> ---
Kirill, can you verify that Jakub's patch restores proper behaviour for your
tests? It'd be greatly appreciated.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug rtl-optimization/59754] [ree.c] Incorrect merge while working with vector registers
2014-01-10 11:14 [Bug rtl-optimization/59754] New: [ree.c] Incorrect merge while working with vector registers kirill.yukhin at intel dot com
` (2 preceding siblings ...)
2014-01-10 21:19 ` law at redhat dot com
@ 2014-01-10 21:28 ` jakub at gcc dot gnu.org
2014-01-10 21:41 ` law at redhat dot com
4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-01-10 21:28 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59754
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Fri Jan 10 21:27:52 2014
New Revision: 206542
URL: http://gcc.gnu.org/viewcvs?rev=206542&root=gcc&view=rev
Log:
PR rtl-optimization/59754
* ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
modes in the REGNO != REGNO case.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ree.c
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug rtl-optimization/59754] [ree.c] Incorrect merge while working with vector registers
2014-01-10 11:14 [Bug rtl-optimization/59754] New: [ree.c] Incorrect merge while working with vector registers kirill.yukhin at intel dot com
` (3 preceding siblings ...)
2014-01-10 21:28 ` jakub at gcc dot gnu.org
@ 2014-01-10 21:41 ` law at redhat dot com
4 siblings, 0 replies; 6+ messages in thread
From: law at redhat dot com @ 2014-01-10 21:41 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59754
Jeffrey A. Law <law at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |FIXED
--- Comment #5 from Jeffrey A. Law <law at redhat dot com> ---
Should be fixed by Jakub's commit on the trunk.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-01-10 21:41 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-10 11:14 [Bug rtl-optimization/59754] New: [ree.c] Incorrect merge while working with vector registers kirill.yukhin at intel dot com
2014-01-10 11:18 ` [Bug rtl-optimization/59754] " kirill.yukhin at intel dot com
2014-01-10 12:56 ` jakub at gcc dot gnu.org
2014-01-10 21:19 ` law at redhat dot com
2014-01-10 21:28 ` jakub at gcc dot gnu.org
2014-01-10 21:41 ` law at redhat dot com
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).