OSDN Git Service

add a note
authorChris Lattner <sabre@nondot.org>
Wed, 14 Jun 2006 21:26:18 +0000 (21:26 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 14 Jun 2006 21:26:18 +0000 (21:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28787 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/README-SSE.txt

index ecf846c..5b741e6 100644 (file)
@@ -664,3 +664,32 @@ e.g. SSE select using and, andnot, or. Various SSE compare translations.
 //===---------------------------------------------------------------------===//
 
 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);
+}
+
+//===---------------------------------------------------------------------===//