Evan Cheng 
							
						 
					 
					
						
						
							
						
						4ac8974d02 
					 
					
						
						
							
							Should pass by reference.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28357  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-17 19:07:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						aa9406b0c4 
					 
					
						
						
							
							Implement the custom lowering hook right, returning values for all of the  
						
						... 
						
						
						
						arguments at once.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28327  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-16 17:14:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e7746c9084 
					 
					
						
						
							
							Fix a bug I introduced yesterday, which broke functions with *no* arguments.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28326  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-16 17:08:35 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						069287d460 
					 
					
						
						
							
							X86 integer register classes naming changes. Make them consistent with FP, vector classes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28324  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-16 07:21:53 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8c0c10c2b9 
					 
					
						
						
							
							Add a chain to FORMAL_ARGUMENTS.  This is a minimal port of the X86 backend,  
						
						... 
						
						
						
						it doesn't currently use/maintain the chain properly.  Also, make the
X86ISelLowering.cpp file 80-col clean.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28320  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-16 06:45:34 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						03ea4c8326 
					 
					
						
						
							
							Dead variable  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28265  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-12 21:12:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						80a7ecc923 
					 
					
						
						
							
							Teach the X86 backend about non-i32 inline asm register classes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28139  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-06 00:29:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bd04aa5796 
					 
					
						
						
							
							Teach the code generator to use cvtss2sd as extload f32 -> f64  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28131  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-05 21:35:18 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						a69571c799 
					 
					
						
						
							
							Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses.  This has one caller-visible change: getTargetData() now returns a pointer instead of a reference.  
						
						... 
						
						
						
						This fixes PR 759.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28074  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-03 01:29:57 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						347d5f789a 
					 
					
						
						
							
							Initial caller side support (for CCC only, not FastCC) of 128-bit vector  
						
						... 
						
						
						
						passing by value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28015  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-28 21:29:37 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						43f3bd310b 
					 
					
						
						
							
							Implement four-wide shuffle with 2 shufps if no more than two elements come  
						
						... 
						
						
						
						from each vector. e.g.
        shuffle(G1, G2, 7, 1, 5, 2)
==>
        movaps _G2, %xmm0
        shufps $151, _G1, %xmm0
        shufps $216, %xmm0, %xmm0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28011  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-28 07:03:38 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						020c41f21e 
					 
					
						
						
							
							TargetLowering::LowerArguments should return a VBIT_CONVERT of  
						
						... 
						
						
						
						FORMAL_ARGUMENTS SDOperand in the return result vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28009  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-28 05:25:15 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						fea89c14ec 
					 
					
						
						
							
							Make x86 isel lowering produce tailcall nodes. They are match to normal calls  
						
						... 
						
						
						
						for now.
Patch contributed by Alexander Friedman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27994  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-27 08:40:39 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2fdd95eee7 
					 
					
						
						
							
							Support for passing 128-bit vector arguments via XMM registers.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27992  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-27 08:31:10 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5fb03ce905 
					 
					
						
						
							
							Oops  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27989  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-27 05:44:50 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						85e3800e42 
					 
					
						
						
							
							Bug fix: not updating NumIntRegs.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27988  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-27 05:35:28 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						eda65fa20b 
					 
					
						
						
							
							- Clean up formal argument lowering code. Prepare for vector pass by value work.  
						
						... 
						
						
						
						- Fixed vararg support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27985  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-27 01:32:22 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						9191dbba8e 
					 
					
						
						
							
							Fix fastcc failures.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27980  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-26 18:21:31 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						1bc7804e4c 
					 
					
						
						
							
							Switching over FORMAL_ARGUMENTS mechanism to lower call arguments.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27975  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-26 01:20:17 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						0db9fe6775 
					 
					
						
						
							
							Separate LowerOperation() into multiple functions, one per opcode.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27972  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-25 20:13:52 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						37d1d9bc66 
					 
					
						
						
							
							Special case handling two wide build_vector(0, x).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27961  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-24 22:58:52 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c78d3b43f5 
					 
					
						
						
							
							A little bit more build_vector enhancement for v8i16 cases.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27959  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-24 18:01:45 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						9293451e3f 
					 
					
						
						
							
							MOVL shuffle (i.e. movd or movss / movsd from memory) of undef, V2 == V2  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27953  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-23 06:35:19 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						37efe67645 
					 
					
						
						
							
							JumpTable support!  What this represents is working asm and jit support for  
						
						... 
						
						
						
						x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-22 18:53:45 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						1900c012f5 
					 
					
						
						
							
							Don't do all the lowering stuff for 2-wide build_vector's. Also, minor optimization for shuffle of undef.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27946  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-22 08:34:05 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a083af14c8 
					 
					
						
						
							
							Fix a performance regression. Use {p}shuf* when there are only two distinct elements in a build_vector.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27945  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-22 06:21:46 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						ba05f728b5 
					 
					
						
						
							
							Revamp build_vector lowering to take advantage of movss and movd instructions.  
						
						... 
						
						
						
						movd always clear the top 96 bits and movss does so when it's loading the
value from memory.
The net result is codegen for 4-wide shuffles is much improved. It is near
optimal if one or more elements is a zero. e.g.
__m128i test(int a, int b) {
  return _mm_set_epi32(0, 0, b, a);
}
compiles to
_test:
	movd 8(%esp), %xmm1
	movd 4(%esp), %xmm0
	punpckldq %xmm1, %xmm0
	ret
compare to gcc:
_test:
	subl	$12, %esp
	movd	20(%esp), %xmm0
	movd	16(%esp), %xmm1
	punpckldq	%xmm0, %xmm1
	movq	%xmm1, %xmm0
	movhps	LC0, %xmm0
	addl	$12, %esp
	ret
or icc:
_test:
        movd      4(%esp), %xmm0                                #5.10
        movd      8(%esp), %xmm3                                #5.10
        xorl      %eax, %eax                                    #5.10
        movd      %eax, %xmm1                                   #5.10
        punpckldq %xmm1, %xmm0                                  #5.10
        movd      %eax, %xmm2                                   #5.10
        punpckldq %xmm2, %xmm3                                  #5.10
        punpckldq %xmm3, %xmm0                                  #5.10
        ret                                                     #5.10
There are still room for improvement, for example the FP variant of the above example:
__m128 test(float a, float b) {
  return _mm_set_ps(0.0, 0.0, b, a);
}
_test:
	movss 8(%esp), %xmm1
	movss 4(%esp), %xmm0
	unpcklps %xmm1, %xmm0
	xorps %xmm1, %xmm1
	movlhps %xmm1, %xmm0
	ret
The xorps and movlhps are unnecessary. This will require post legalizer optimization to handle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27939  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-21 23:03:30 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						017dcc6e55 
					 
					
						
						
							
							Now generating perfect (I think) code for "vector set" with a single non-zero  
						
						... 
						
						
						
						scalar value.
e.g.
        _mm_set_epi32(0, a, 0, 0);
==>
	movd 4(%esp), %xmm0
	pshufd $69, %xmm0, %xmm0
        _mm_set_epi8(0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
==>
	movzbw 4(%esp), %ax
	movzwl %ax, %eax
	pxor %xmm0, %xmm0
	pinsrw $5, %eax, %xmm0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27923  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-21 01:05:10 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						39623daef6 
					 
					
						
						
							
							- Added support to turn "vector clear elements", e.g. pand V, <-1, -1, 0, -1>  
						
						... 
						
						
						
						to a vector shuffle.
- VECTOR_SHUFFLE lowering change in preparation for more efficient codegen
of vector shuffle with zero (or any splat) vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27875  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-20 08:58:49 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						72cd9a9439 
					 
					
						
						
							
							Handle v2i64 BUILD_VECTOR custom lowering correctly. v2i64 is a legal type,  
						
						... 
						
						
						
						but i64 is not. If possible, change a i64 op to a f64 (e.g. load, constant)
and then cast it back.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27849  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-20 00:11:39 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						94fe5eb14a 
					 
					
						
						
							
							isSplatMask() bug: first element can be an undef.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27847  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-19 23:28:59 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						80d428c370 
					 
					
						
						
							
							- Added support to do aribitrary 4 wide shuffle with no more than three  
						
						... 
						
						
						
						instructions.
- Fixed a commute vector_shuff bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27845  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-19 22:48:17 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						533a0aa9ba 
					 
					
						
						
							
							Commute vector_shuffle to match more movlhps, movlp{s|d} cases.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27840  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-19 20:35:22 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						cdfc3c82a7 
					 
					
						
						
							
							Use movss to insert_vector_elt(v, s, 0).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27782  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-17 22:45:49 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5edb8d270c 
					 
					
						
						
							
							Use two pinsrw to insert an element into v4i32 / v4f32 vector.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27779  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-17 22:04:06 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c575ca22ea 
					 
					
						
						
							
							Implement v8i16, v16i8 splat using unpckl + pshufd.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27768  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-17 20:43:08 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b2be4032c5 
					 
					
						
						
							
							implement returns of a vector, testcase here: CodeGen/X86/vec_return.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27767  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-17 20:32:50 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5001ea1078 
					 
					
						
						
							
							FP SETOLT, SETOLT, SETUGE, SETUGT conditions were implemented incorrectly  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27755  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-17 07:24:10 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						57ebe9fbf0 
					 
					
						
						
							
							Silly bug  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27719  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-15 05:37:34 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						39fc145995 
					 
					
						
						
							
							Do not use movs{h|l}dup for a shuffle with a single non-undef node.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27718  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-15 03:13:24 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d953947d26 
					 
					
						
						
							
							Last few SSE3 intrinsics.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27711  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-14 21:59:03 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f99898453d 
					 
					
						
						
							
							X86 SSE2 supports v8i16 multiplication  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27644  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-13 05:10:25 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2c3ae37213 
					 
					
						
						
							
							All "integer" logical ops (pand, por, pxor) are now promoted to v2i64.  
						
						... 
						
						
						
						Clean up and fix various logical ops issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27633  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-12 21:21:57 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						91b740da12 
					 
					
						
						
							
							Promote v4i32, v8i16, v16i8 load to v2i64 load.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27612  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-12 17:12:36 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d6d1cbd692 
					 
					
						
						
							
							Added support for _mm_move_ss and _mm_move_sd.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27575  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-11 00:19:04 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f7c378e9ea 
					 
					
						
						
							
							Conditional move of vector types.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27556  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-10 07:23:14 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c5cdff2341 
					 
					
						
						
							
							Code clean up.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27501  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-07 21:53:05 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5ced1d812e 
					 
					
						
						
							
							- movlp{s|d} and movhp{s|d} support.  
						
						... 
						
						
						
						- Normalize shuffle nodes so result vector lower half elements come from the
  first vector, the rest come from the second vector. (Except for the
  exceptions :-).
- Other minor fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27474  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-06 23:23:56 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						6be2c58c8c 
					 
					
						
						
							
							Support for comi / ucomi intrinsics.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27444  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-05 23:38:46 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						1d5a8cca00 
					 
					
						
						
							
							Handle canonical form of e.g.  
						
						... 
						
						
						
						vector_shuffle v1, v1, <0, 4, 1, 5, 2, 6, 3, 7>
This is turned into
vector_shuffle v1, <undef>, <0, 0, 1, 1, 2, 2, 3, 3>
by dag combiner.
It would match a {p}unpckl on x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27437  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-05 07:20:06 +00:00