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

Chris Lattner lattner at cs.uiuc.edu
Wed Jun 14 14:26:30 PDT 2006



Changes in directory llvm/lib/Target/X86:

README-SSE.txt updated: 1.2 -> 1.3
---
Log message:

add a note


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

 README-SSE.txt |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+)


Index: llvm/lib/Target/X86/README-SSE.txt
diff -u llvm/lib/Target/X86/README-SSE.txt:1.2 llvm/lib/Target/X86/README-SSE.txt:1.3
--- llvm/lib/Target/X86/README-SSE.txt:1.2	Tue May 30 18:56:31 2006
+++ llvm/lib/Target/X86/README-SSE.txt	Wed Jun 14 16:26:18 2006
@@ -664,3 +664,32 @@
 //===---------------------------------------------------------------------===//
 
 Add hooks to commute some CMPP operations.
+
+//===---------------------------------------------------------------------===//
+
+Implement some missing insert/extract element operations without going through
+the stack.  Testcase here:
+CodeGen/X86/vec_ins_extract.ll
+corresponds to this C code:
+
+typedef float vectorfloat __attribute__((vector_size(16)));
+void test(vectorfloat *F, float f) {
+  vectorfloat G = *F + *F;
+  *((float*)&G) = f;
+  *F = G + G;
+}
+void test2(vectorfloat *F, float f) {
+  vectorfloat G = *F + *F;
+  ((float*)&G)[2] = f;
+  *F = G + G;
+}
+void test3(vectorfloat *F, float *f) {
+  vectorfloat G = *F + *F;
+  *f = ((float*)&G)[2];
+}
+void test4(vectorfloat *F, float *f) {
+  vectorfloat G = *F + *F;
+  *f = *((float*)&G);
+}
+
+//===---------------------------------------------------------------------===//






More information about the llvm-commits mailing list