diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-03-04 14:57:26 +0000 | 
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-03-04 14:57:26 +0000 | 
| commit | 3a76bc29d79cf7e2b9d118ffe52dc62a3165c1ca (patch) | |
| tree | a2094adbc631b8b8088ffed3dd3f1753af203bb3 | |
| parent | 12c35e194061e4affdc2bea957435aaf8b0f10a1 (diff) | |
| download | bcm5719-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.txt | 29 | 
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  | 

