[llvm-commits] CVS: llvm/lib/Target/X86/README.txt

Evan Cheng evan.cheng at apple.com
Mon Apr 24 10:38:28 PDT 2006



Changes in directory llvm/lib/Target/X86:

README.txt updated: 1.96 -> 1.97
---
Log message:

Remove a completed entry.


---
Diffs of the changes:  (+0 -55)

 README.txt |   55 -------------------------------------------------------
 1 files changed, 55 deletions(-)


Index: llvm/lib/Target/X86/README.txt
diff -u llvm/lib/Target/X86/README.txt:1.96 llvm/lib/Target/X86/README.txt:1.97
--- llvm/lib/Target/X86/README.txt:1.96	Sun Apr 23 14:47:09 2006
+++ llvm/lib/Target/X86/README.txt	Mon Apr 24 12:38:16 2006
@@ -999,61 +999,6 @@
 
 //===---------------------------------------------------------------------===//
 
-Use the 0's in the top part of movss from memory (and from other instructions
-that generate them) to build vectors more efficiently.  Consider:
-
-vector float test(float a) {
- return (vector float){ 0.0, a, 0.0, 0.0}; 
-}
-
-We currently generate this as:
-
-_test:
-        sub %ESP, 28
-        movss %XMM0, DWORD PTR [%ESP + 32]
-        movss DWORD PTR [%ESP + 4], %XMM0
-        mov DWORD PTR [%ESP + 12], 0
-        mov DWORD PTR [%ESP + 8], 0
-        mov DWORD PTR [%ESP], 0
-        movaps %XMM0, XMMWORD PTR [%ESP]
-        add %ESP, 28
-        ret
-
-Something like this should be sufficient:
-
-_test:
-	movss %XMM0, DWORD PTR [%ESP + 4]
-	shufps %XMM0, %XMM0, 81
-	ret
-
-... which takes advantage of the zero elements provided by movss.
-Even xoring a register and shufps'ing IT would be better than the
-above code.
-
-Likewise, for this:
-
-vector float test(float a, float b) {
- return (vector float){ b, a, 0.0, 0.0}; 
-}
-
-_test:
-        pxor %XMM0, %XMM0
-        movss %XMM1, %XMM0
-        movss %XMM2, DWORD PTR [%ESP + 4]
-        unpcklps %XMM2, %XMM1
-        movss %XMM0, DWORD PTR [%ESP + 8]
-        unpcklps %XMM0, %XMM1
-        unpcklps %XMM0, %XMM2
-        ret
-
-... where we do use pxor, it would be better to use the zero'd 
-elements that movss provides to turn this into 2 shufps's instead
-of 3 unpcklps's.
-
-Another example: {0.0, 0.0, a, b }
-
-//===---------------------------------------------------------------------===//
-
 Consider:
 
 __m128 test(float a) {






More information about the llvm-commits mailing list