public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/94921] New: Failure to optimize nots with sub into single add
@ 2020-05-02 12:39 gabravier at gmail dot com
2020-05-02 13:09 ` [Bug tree-optimization/94921] " glisse at gcc dot gnu.org
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: gabravier at gmail dot com @ 2020-05-02 12:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94921
Bug ID: 94921
Summary: Failure to optimize nots with sub into single add
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: gabravier at gmail dot com
Target Milestone: ---
int f(int x, int y)
{
return ~(~x - y);
}
This can be optimized to `x - y`. This transformation is done by LLVM, but not
by GCC
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug tree-optimization/94921] Failure to optimize nots with sub into single add
2020-05-02 12:39 [Bug tree-optimization/94921] New: Failure to optimize nots with sub into single add gabravier at gmail dot com
@ 2020-05-02 13:09 ` glisse at gcc dot gnu.org
2020-05-04 8:44 ` ubizjak at gmail dot com
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: glisse at gcc dot gnu.org @ 2020-05-02 13:09 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94921
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> ---
x + y ?
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug tree-optimization/94921] Failure to optimize nots with sub into single add
2020-05-02 12:39 [Bug tree-optimization/94921] New: Failure to optimize nots with sub into single add gabravier at gmail dot com
2020-05-02 13:09 ` [Bug tree-optimization/94921] " glisse at gcc dot gnu.org
@ 2020-05-04 8:44 ` ubizjak at gmail dot com
2020-05-05 11:44 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: ubizjak at gmail dot com @ 2020-05-04 8:44 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94921
Uroš Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2020-05-04
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Marc Glisse from comment #1)
> x + y ?
Correct.
llvm:
leal (%rdi,%rsi), %eax
retq
gcc:
notl %edi
subl %esi, %edi
movl %edi, %eax
notl %eax
ret
Confirmed, looks like a job for a tree combiner.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug tree-optimization/94921] Failure to optimize nots with sub into single add
2020-05-02 12:39 [Bug tree-optimization/94921] New: Failure to optimize nots with sub into single add gabravier at gmail dot com
2020-05-02 13:09 ` [Bug tree-optimization/94921] " glisse at gcc dot gnu.org
2020-05-04 8:44 ` ubizjak at gmail dot com
@ 2020-05-05 11:44 ` jakub at gcc dot gnu.org
2020-05-05 15:07 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-05-05 11:44 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94921
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
Status|NEW |ASSIGNED
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug tree-optimization/94921] Failure to optimize nots with sub into single add
2020-05-02 12:39 [Bug tree-optimization/94921] New: Failure to optimize nots with sub into single add gabravier at gmail dot com
` (2 preceding siblings ...)
2020-05-05 11:44 ` jakub at gcc dot gnu.org
@ 2020-05-05 15:07 ` jakub at gcc dot gnu.org
2020-05-06 9:20 ` cvs-commit at gcc dot gnu.org
2020-05-06 9:22 ` jakub at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-05-05 15:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94921
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 48453
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48453&action=edit
gcc11-pr94921.patch
Untested fix.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug tree-optimization/94921] Failure to optimize nots with sub into single add
2020-05-02 12:39 [Bug tree-optimization/94921] New: Failure to optimize nots with sub into single add gabravier at gmail dot com
` (3 preceding siblings ...)
2020-05-05 15:07 ` jakub at gcc dot gnu.org
@ 2020-05-06 9:20 ` cvs-commit at gcc dot gnu.org
2020-05-06 9:22 ` jakub at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-05-06 9:20 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94921
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:a7b76d574b19190da190a60c065f347f40bab59e
commit r11-132-ga7b76d574b19190da190a60c065f347f40bab59e
Author: Jakub Jelinek <jakub@redhat.com>
Date: Wed May 6 11:20:20 2020 +0200
match.pd: Optimize ~(~X +- Y) into (X -+ Y) [PR94921]
According to my verification proglet, this transformation for signed types
with undefined overflow doesn't introduce nor remove any UB cases, so
should
be valid even for signed integral types.
Not using a for because of the :c on plus which can't be there on minus.
2020-05-06 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/94921
* match.pd (~(~X - Y) -> X + Y, ~(~X + Y) -> X - Y): New
simplifications.
* gcc.dg/tree-ssa/pr94921.c: New test.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug tree-optimization/94921] Failure to optimize nots with sub into single add
2020-05-02 12:39 [Bug tree-optimization/94921] New: Failure to optimize nots with sub into single add gabravier at gmail dot com
` (4 preceding siblings ...)
2020-05-06 9:20 ` cvs-commit at gcc dot gnu.org
@ 2020-05-06 9:22 ` jakub at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-05-06 9:22 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94921
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed for 11+.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-05-06 9:22 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-02 12:39 [Bug tree-optimization/94921] New: Failure to optimize nots with sub into single add gabravier at gmail dot com
2020-05-02 13:09 ` [Bug tree-optimization/94921] " glisse at gcc dot gnu.org
2020-05-04 8:44 ` ubizjak at gmail dot com
2020-05-05 11:44 ` jakub at gcc dot gnu.org
2020-05-05 15:07 ` jakub at gcc dot gnu.org
2020-05-06 9:20 ` cvs-commit at gcc dot gnu.org
2020-05-06 9:22 ` jakub 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).