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).