X86 if conversion + tail merging issues from PR6032.
authorChris Lattner <sabre@nondot.org>
Wed, 13 Jan 2010 23:28:40 +0000 (23:28 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 13 Jan 2010 23:28:40 +0000 (23:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93372 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/README.txt

index aa7bb3d9788924974c059e1c8fecbcc2241c1253..f146ff363457fe6dd0bdea1da7e59859e0c23078 100644 (file)
@@ -1868,3 +1868,23 @@ carried over to machine instructions. Asm printer (or JIT) can use this
 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.
+
+//===---------------------------------------------------------------------===//
+