summaryrefslogtreecommitdiff
path: root/lib/Target/X86/README-SSE.txt
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-06-14 21:26:18 +0000
committerChris Lattner <sabre@nondot.org>2006-06-14 21:26:18 +0000
commit4b5a352f255a448b73b6f728508ae01b9fd82f19 (patch)
treef2320280ec3d3dba7e7eb07d7436c6589e7d5a4c /lib/Target/X86/README-SSE.txt
parentca0173bc0a477ea2b22c799e3ef7307ddbaf5531 (diff)
downloadllvm-4b5a352f255a448b73b6f728508ae01b9fd82f19.tar.gz
llvm-4b5a352f255a448b73b6f728508ae01b9fd82f19.tar.bz2
llvm-4b5a352f255a448b73b6f728508ae01b9fd82f19.tar.xz
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28787 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/README-SSE.txt')
-rw-r--r--lib/Target/X86/README-SSE.txt29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/Target/X86/README-SSE.txt b/lib/Target/X86/README-SSE.txt
index ecf846c281..5b741e6f7a 100644
--- a/lib/Target/X86/README-SSE.txt
+++ b/lib/Target/X86/README-SSE.txt
@@ -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);
+}
+
+//===---------------------------------------------------------------------===//