[llvm-bugs] [Bug 40825] [x86-64] Suboptimal codegen on uint128 negation
via llvm-bugs
llvm-bugs at lists.llvm.org
Thu Jul 25 07:25:33 PDT 2019
https://bugs.llvm.org/show_bug.cgi?id=40825
Simon Pilgrim <llvm-dev at redking.me.uk> changed:
What |Removed |Added
----------------------------------------------------------------------------
See Also| |https://bugs.llvm.org/show_
| |bug.cgi?id=40483
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #1 from Simon Pilgrim <llvm-dev at redking.me.uk> ---
This is fixed in trunk, I think from the work on [Bug #40483]
trunk / 9.0:
wider_tests::Tests<unsigned __int128>::neg(unsigned __int128*):
xorl %eax, %eax
negq (%rdi)
sbbq 8(%rdi), %rax
movq %rax, 8(%rdi)
retq
wider_tests::Tests<Wider<unsigned long> >::neg(Wider<unsigned long>*):
xorl %eax, %eax
negq (%rdi)
sbbq 8(%rdi), %rax
movq %rax, 8(%rdi)
retq
vs 8.0:
wider_tests::Tests<unsigned __int128>::neg(unsigned __int128*):
xorl %eax, %eax
xorl %ecx, %ecx
subq (%rdi), %rcx
sbbq 8(%rdi), %rax
movq %rcx, (%rdi)
movq %rax, 8(%rdi)
retq
wider_tests::Tests<Wider<unsigned long> >::neg(Wider<unsigned long>*):
movq (%rdi), %rax
testq %rax, %rax
setne %cl
negq %rax
xorl %edx, %edx
addb $-1, %cl
sbbq 8(%rdi), %rdx
movq %rax, (%rdi)
movq %rdx, 8(%rdi)
retq
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190725/157eaf92/attachment.html>
More information about the llvm-bugs
mailing list