aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-01-31 22:26:21 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-01-31 22:26:21 +0000
commit598463fde407795943e30a15aac12e0897fe4857 (patch)
treead195c809c3ba6861c6929a6d32ca3071c57a67b
parentb8973bd8f50d7321635e1e07b81a880a0828d185 (diff)
downloadexternal_llvm-598463fde407795943e30a15aac12e0897fe4857.zip
external_llvm-598463fde407795943e30a15aac12e0897fe4857.tar.gz
external_llvm-598463fde407795943e30a15aac12e0897fe4857.tar.bz2
Remove entries on fabs and fneg. These are done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25856 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/README.txt49
1 files changed, 0 insertions, 49 deletions
diff --git a/lib/Target/X86/README.txt b/lib/Target/X86/README.txt
index 40d9dbb..45f2f4a 100644
--- a/lib/Target/X86/README.txt
+++ b/lib/Target/X86/README.txt
@@ -215,53 +215,6 @@ when it can invert the result of the compare for free.
//===---------------------------------------------------------------------===//
-The code generated for 'abs' is truly aweful:
-
-float %foo(float %tmp.38) {
- %tmp.39 = setgt float %tmp.38, 0.000000e+00
- %tmp.45 = sub float -0.000000e+00, %tmp.38
- %mem_tmp.0.0 = select bool %tmp.39, float %tmp.38, float %tmp.45
- ret float %mem_tmp.0.0
-}
-
-_foo:
- subl $4, %esp
- movss LCPI1_0, %xmm0
- movss 8(%esp), %xmm1
- subss %xmm1, %xmm0
- xorps %xmm2, %xmm2
- ucomiss %xmm2, %xmm1
- setp %al
- seta %cl
- orb %cl, %al
- testb %al, %al
- jne LBB_foo_2 #
-LBB_foo_1: #
- movss %xmm0, %xmm1
-LBB_foo_2: #
- movss %xmm1, (%esp)
- flds (%esp)
- addl $4, %esp
- ret
-
-This should be a high-priority to fix. With the fp-stack, this is a single
-instruction. With SSE it could be far better than this. Why is the sequence
-above using 'setp'? It shouldn't care about nan's.
-
-//===---------------------------------------------------------------------===//
-
-Is there a better way to implement Y = -X (fneg) than the literal code:
-
-float %test(float %X) {
- %Y = sub float -0.0, %X
- ret float %Y
-}
-
- movss LCPI1_0, %xmm0 ;; load -0.0
- subss 8(%esp), %xmm0 ;; subtract
-
-//===---------------------------------------------------------------------===//
-
None of the SSE instructions are handled in X86RegisterInfo::foldMemoryOperand,
which prevents the spiller from folding spill code into the instructions.
@@ -358,5 +311,3 @@ _test:
This is bad for register pressure, though the dag isel is producing a
better schedule. :)
-
-