aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/README.txt
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-09-11 05:35:17 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-09-11 05:35:17 +0000
commitf47d167c3be808a008105e74516f33e8d215d71c (patch)
tree423fada7e52e80a3de3b6417ce532cfdad3f4e46 /lib/Target/X86/README.txt
parent0f4aa6ee2038979e5c8a038494c6a05155bb8fcf (diff)
downloadexternal_llvm-f47d167c3be808a008105e74516f33e8d215d71c.zip
external_llvm-f47d167c3be808a008105e74516f33e8d215d71c.tar.gz
external_llvm-f47d167c3be808a008105e74516f33e8d215d71c.tar.bz2
Updates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30245 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/README.txt')
-rw-r--r--lib/Target/X86/README.txt38
1 files changed, 0 insertions, 38 deletions
diff --git a/lib/Target/X86/README.txt b/lib/Target/X86/README.txt
index 94c8ea1..fdfc9fb 100644
--- a/lib/Target/X86/README.txt
+++ b/lib/Target/X86/README.txt
@@ -390,44 +390,6 @@ require a copy to be inserted (in X86InstrInfo::convertToThreeAddress).
//===---------------------------------------------------------------------===//
-This code generates ugly code, probably due to costs being off or something:
-
-void %test(float* %P, <4 x float>* %P2 ) {
- %xFloat0.688 = load float* %P
- %loadVector37.712 = load <4 x float>* %P2
- %inFloat3.713 = insertelement <4 x float> %loadVector37.712, float 0.000000e+00, uint 3
- store <4 x float> %inFloat3.713, <4 x float>* %P2
- ret void
-}
-
-Generates:
-
-_test:
- pxor %xmm0, %xmm0
- movd %xmm0, %eax ;; EAX = 0!
- movl 8(%esp), %ecx
- movaps (%ecx), %xmm0
- pinsrw $6, %eax, %xmm0
- shrl $16, %eax ;; EAX = 0 again!
- pinsrw $7, %eax, %xmm0
- movaps %xmm0, (%ecx)
- ret
-
-It would be better to generate:
-
-_test:
- movl 8(%esp), %ecx
- movaps (%ecx), %xmm0
- xor %eax, %eax
- pinsrw $6, %eax, %xmm0
- pinsrw $7, %eax, %xmm0
- movaps %xmm0, (%ecx)
- ret
-
-or use pxor (to make a zero vector) and shuffle (to insert it).
-
-//===---------------------------------------------------------------------===//
-
Bad codegen:
char foo(int x) { return x; }