mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-14 15:28:20 +00:00
X86 if conversion + tail merging issues from PR6032.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93372 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1868,3 +1868,23 @@ carried over to machine instructions. Asm printer (or JIT) can use this
|
|||||||
information to add the "lock" prefix.
|
information to add the "lock" prefix.
|
||||||
|
|
||||||
//===---------------------------------------------------------------------===//
|
//===---------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
The X86 backend should be able to if-convert SSE comparisons like "ucomisd" to
|
||||||
|
"cmpsd". For example, this code:
|
||||||
|
|
||||||
|
double d1(double x) { return x == x ? x : x + x; }
|
||||||
|
|
||||||
|
Compiles into:
|
||||||
|
|
||||||
|
_d1:
|
||||||
|
ucomisd %xmm0, %xmm0
|
||||||
|
jnp LBB1_2
|
||||||
|
addsd %xmm0, %xmm0
|
||||||
|
ret
|
||||||
|
LBB1_2:
|
||||||
|
ret
|
||||||
|
|
||||||
|
Also, the 'ret's should be shared. This is PR6032.
|
||||||
|
|
||||||
|
//===---------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user