[Bug target/51954] __int128_t (and long long on x86) negation can be optimized

2022-04-29 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51954 Uroš Bizjak changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|---

[Bug target/51954] __int128_t (and long long on x86) negation can be optimized

2022-04-29 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51954 --- Comment #8 from CVS Commits --- The master branch has been updated by Uros Bizjak : https://gcc.gnu.org/g:59119253b3133b30114194a04171f9d353b5c7f7 commit r13-38-g59119253b3133b30114194a04171f9d353b5c7f7 Author: Uros Bizjak Date: Fri Apr

[Bug target/51954] __int128_t (and long long on x86) negation can be optimized

2022-02-20 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51954 Uroš Bizjak changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at

[Bug target/51954] __int128_t (and long long on x86) negation can be optimized

2022-02-20 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51954 --- Comment #7 from Uroš Bizjak --- (In reply to Hongtao.liu from comment #5) > > > > Yes, neg rdx = (0 - rdx) = (0 - (rdx + CF)(last def)) = (sbb 0, rdx) > > And we need an extra register for it. The patch in Comment #6 does a conversion,

[Bug target/51954] __int128_t (and long long on x86) negation can be optimized

2022-02-20 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51954 --- Comment #6 from Uroš Bizjak --- Created attachment 52481 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52481=edit Proposed patch +;; Convert: +;; mov %esi, %edx +;; negl %eax +;; adcl $0, %edx +;; negl %edx +;; to: +;; xorl

[Bug target/51954] __int128_t (and long long on x86) negation can be optimized

2022-02-20 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51954 --- Comment #5 from Hongtao.liu --- > > Yes, neg rdx = (0 - rdx) = (0 - (rdx + CF)(last def)) = (sbb 0, rdx) And we need an extra register for it.

[Bug target/51954] __int128_t (and long long on x86) negation can be optimized

2022-02-20 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51954 --- Comment #4 from Hongtao.liu --- (In reply to Andrew Pinski from comment #2) > We get this now: > > movq%rdi, %rax > movq%rsi, %rdx > negq%rax > adcq$0, %rdx > negq%rdx > > ICC

[Bug target/51954] __int128_t (and long long on x86) negation can be optimized

2022-02-20 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51954 Andrew Pinski changed: What|Removed |Added CC||gabravier at gmail dot com --- Comment

[Bug target/51954] __int128_t (and long long on x86) negation can be optimized

2021-12-26 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51954 --- Comment #2 from Andrew Pinski --- We get this now: movq%rdi, %rax movq%rsi, %rdx negq%rax adcq$0, %rdx negq%rdx ICC produces: xorl %edx, %edx