summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-03-04 14:57:26 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-03-04 14:57:26 +0000
commit3a76bc29d79cf7e2b9d118ffe52dc62a3165c1ca (patch)
treea2094adbc631b8b8088ffed3dd3f1753af203bb3
parent12c35e194061e4affdc2bea957435aaf8b0f10a1 (diff)
downloadbcm5719-llvm-3a76bc29d79cf7e2b9d118ffe52dc62a3165c1ca.tar.gz
bcm5719-llvm-3a76bc29d79cf7e2b9d118ffe52dc62a3165c1ca.zip
[X86][MMX] Remove completed _mm_cvtsi32_si64 todo
rL322525 - mmx zero constant support rL322553 - mmx i32 zero extended value rL326497 - mmx i64 general constant handling Not all constants are folded, we generate some on the GPRs (similar to SSE build vector) where appropriate llvm-svn: 326673
-rw-r--r--llvm/lib/Target/X86/README-MMX.txt29
1 files changed, 0 insertions, 29 deletions
diff --git a/llvm/lib/Target/X86/README-MMX.txt b/llvm/lib/Target/X86/README-MMX.txt
index a6c8616b6d2..f3a625e65dc 100644
--- a/llvm/lib/Target/X86/README-MMX.txt
+++ b/llvm/lib/Target/X86/README-MMX.txt
@@ -40,32 +40,3 @@ _qux:
movl %edx, 4(%eax)
addl $12, %esp
ret $4
-
-//===---------------------------------------------------------------------===//
-
-We generate crappy code for this:
-
-__m64 t() {
- return _mm_cvtsi32_si64(1);
-}
-
-_t:
- subl $12, %esp
- movl $1, %eax
- movd %eax, %mm0
- movq %mm0, (%esp)
- movl (%esp), %eax
- movl 4(%esp), %edx
- addl $12, %esp
- ret
-
-The extra stack traffic is covered in the previous entry. But the other reason
-is we are not smart about materializing constants in MMX registers. With -m64
-
- movl $1, %eax
- movd %eax, %mm0
- movd %mm0, %rax
- ret
-
-We should be using a constantpool load instead:
- movq LC0(%rip), %rax
OpenPOWER on IntegriCloud