public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/56902] New: Fails to SLP with mismatched +/- and negatable constants
@ 2013-04-10 9:46 rguenth at gcc dot gnu.org
2013-11-11 18:44 ` [Bug tree-optimization/56902] " congh at google dot com
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-04-10 9:46 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56902
Bug #: 56902
Summary: Fails to SLP with mismatched +/- and negatable
constants
Classification: Unclassified
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
Priority: P3
Component: tree-optimization
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: rguenth@gcc.gnu.org
Blocks: 53947
double x[1024], y[1024], z[1024];
void foo (double w)
{
int i;
for (i = 0; i < 1023; i+=2)
{
z[i] = x[i] + 3.;
z[i+1] = x[i+1] + -3.;
}
}
void bar (double w)
{
int i;
for (i = 0; i < 1023; i+=2)
{
z[i] = x[i] + w;
z[i+1] = x[i+1] + -3.;
}
}
void baz (double w)
{
int i;
for (i = 0; i < 1023; i+=2)
{
z[i] = x[i] - w;
z[i+1] = x[i+1] + 3.;
}
}
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug tree-optimization/56902] Fails to SLP with mismatched +/- and negatable constants
2013-04-10 9:46 [Bug tree-optimization/56902] New: Fails to SLP with mismatched +/- and negatable constants rguenth at gcc dot gnu.org
@ 2013-11-11 18:44 ` congh at google dot com
2013-11-13 15:39 ` rguenth at gcc dot gnu.org
2015-10-22 10:03 ` rguenth at gcc dot gnu.org
2 siblings, 0 replies; 4+ messages in thread
From: congh at google dot com @ 2013-11-11 18:44 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56902
Cong Hou <congh at google dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |congh at google dot com
--- Comment #1 from Cong Hou <congh at google dot com> ---
I just made a patch which supports limited non-isomorphic operations
(operations on even/odd elements are still isomorphic) for SLP. Then the three
loops you listed can be vectorized using SLP by using new VEC_ADDSUB_EXPR or
VEC_SUBADD_EXPR. For x86, SSE3 provides ADDSUBPD/ADDSUBPS instructions which
can do the job, but I also emulated them for SSE (use mask to negate the
even/odd elements and then add).
I think we will need to support more general non-isomorphic operations, which
is more difficult and challenging. But I think the limited support in this
patch is also useful at this time.
I will send the patch later.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug tree-optimization/56902] Fails to SLP with mismatched +/- and negatable constants
2013-04-10 9:46 [Bug tree-optimization/56902] New: Fails to SLP with mismatched +/- and negatable constants rguenth at gcc dot gnu.org
2013-11-11 18:44 ` [Bug tree-optimization/56902] " congh at google dot com
@ 2013-11-13 15:39 ` rguenth at gcc dot gnu.org
2015-10-22 10:03 ` rguenth at gcc dot gnu.org
2 siblings, 0 replies; 4+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-11-13 15:39 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56902
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 31209
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31209&action=edit
hack
Btw, I also had a patch^Whack, see attached. Also further patches that didn't
get merged to take care of vectorizing PR37021 better.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug tree-optimization/56902] Fails to SLP with mismatched +/- and negatable constants
2013-04-10 9:46 [Bug tree-optimization/56902] New: Fails to SLP with mismatched +/- and negatable constants rguenth at gcc dot gnu.org
2013-11-11 18:44 ` [Bug tree-optimization/56902] " congh at google dot com
2013-11-13 15:39 ` rguenth at gcc dot gnu.org
@ 2015-10-22 10:03 ` rguenth at gcc dot gnu.org
2 siblings, 0 replies; 4+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-10-22 10:03 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56902
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Known to work| |6.0
Resolution|--- |FIXED
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
This is now fixed. Note + 3. vs. - 3. should be handled more optimally
(PR68050)
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-10-22 10:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-10 9:46 [Bug tree-optimization/56902] New: Fails to SLP with mismatched +/- and negatable constants rguenth at gcc dot gnu.org
2013-11-11 18:44 ` [Bug tree-optimization/56902] " congh at google dot com
2013-11-13 15:39 ` rguenth at gcc dot gnu.org
2015-10-22 10:03 ` rguenth 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).