[llvm-commits] [llvm] r50838 - in /llvm/trunk: lib/Target/X86/X86ISelDAGToDAG.cpp lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86ISelLowering.h lib/Target/X86/X86InstrMMX.td lib/Target/X86/X86InstrSSE.td test/CodeGen/X86/vec_set-5.ll test/CodeGen/X86/vec_set-6.ll test/CodeGen/X86/vec_set-C.ll test/CodeGen/X86/vec_set-D.ll

Chris Lattner clattner at apple.com
Wed May 7 18:07:59 PDT 2008


On May 7, 2008, at 5:57 PM, Evan Cheng wrote:
> URL: http://llvm.org/viewvc/llvm-project?rev=50838&view=rev
> Log:
> Handle vector move / load which zero the destination register top  
> bits (i.e. movd, movq, movss (addr), movsd (addr)) with X86 specific  
> dag combine.

Very nice, the testcase improvements are very cool.

I notice that vec_set-C on x86-32 compiles into:

_t1:
	subl	$28, %esp
	movl	36(%esp), %eax
	movl	%eax, 4(%esp)
	movl	32(%esp), %eax
	movl	%eax, (%esp)
	movq	(%esp), %xmm0
	addl	$28, %esp
	ret

Could this just compile to a movsd or movq [mem] -> xmm0?

-Chris




More information about the llvm-commits mailing list