Chris Lattner 
							
						 
					 
					
						
						
							
						
						4672f71ac4 
					 
					
						
						
							
							The stack alignment is now computed dynamically, just verify it is correct.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27380  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-03 21:39:57 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7dca8e2d73 
					 
					
						
						
							
							Remove unused method  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27379  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-03 21:39:03 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						97c2073270 
					 
					
						
						
							
							Add a missing check, this fixes UnitTests/Vector/sumarray.c  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27375  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-03 17:29:28 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a4c5d8c6b4 
					 
					
						
						
							
							Add a missing check, which broke a bunch of vector tests.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27374  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-03 17:21:50 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						cf4fb61f6c 
					 
					
						
						
							
							back this out  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27367  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-03 03:16:50 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						50a0d426e8 
					 
					
						
						
							
							This should be a win of every arch  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27364  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 21:42:45 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1b5232a937 
					 
					
						
						
							
							relax assertion  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27358  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 06:19:46 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1482b5fc7a 
					 
					
						
						
							
							Allow targets to compute masked bits for intrinsics.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27357  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 06:15:09 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						350bec0fb9 
					 
					
						
						
							
							Add a little dag combine to compile this:  
						
						 
						
						... 
						
						
						
						int %AreSecondAndThirdElementsBothNegative(<4 x float>* %in) {
entry:
        %tmp1 = load <4 x float>* %in           ; <<4 x float>> [#uses=1]
        %tmp = tail call int %llvm.ppc.altivec.vcmpgefp.p( int 1, <4 x float> < float 0x7FF8000000000000, float 0.000000e+00, float 0.000000e+00, float 0x7FF8000000000000 >, <4 x float> %tmp1 )           ; <int> [#uses=1]
        %tmp = seteq int %tmp, 0                ; <bool> [#uses=1]
        %tmp3 = cast bool %tmp to int           ; <int> [#uses=1]
        ret int %tmp3
}
into this:
_AreSecondAndThirdElementsBothNegative:
        mfspr r2, 256
        oris r4, r2, 49152
        mtspr 256, r4
        li r4, lo16(LCPI1_0)
        lis r5, ha16(LCPI1_0)
        lvx v0, 0, r3
        lvx v1, r5, r4
        vcmpgefp. v0, v1, v0
        mfcr r3, 2
        rlwinm r3, r3, 27, 31, 31
        mtspr 256, r2
        blr
instead of this:
_AreSecondAndThirdElementsBothNegative:
        mfspr r2, 256
        oris r4, r2, 49152
        mtspr 256, r4
        li r4, lo16(LCPI1_0)
        lis r5, ha16(LCPI1_0)
        lvx v0, 0, r3
        lvx v1, r5, r4
        vcmpgefp. v0, v1, v0
        mfcr r3, 2
        rlwinm r3, r3, 27, 31, 31
        xori r3, r3, 1
        cntlzw r3, r3
        srwi r3, r3, 5
        mtspr 256, r2
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27356  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 06:11:11 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4aab2f4ab5 
					 
					
						
						
							
							Implement promotion for EXTRACT_VECTOR_ELT, allowing v16i8 multiplies to work with PowerPC.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27349  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 05:06:04 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bc70cf8be9 
					 
					
						
						
							
							Implement the Expand action for binary vector operations to break the binop  
						
						 
						
						... 
						
						
						
						into elements and operate on each piece.  This allows generic vector integer
multiplies to work on PPC, though the generated code is horrible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27347  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 03:57:31 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e58a780166 
					 
					
						
						
							
							Intrinsics that just load from memory can be treated like loads: they don't  
						
						 
						
						... 
						
						
						
						have to serialize against each other.  This allows us to schedule lvx's
across each other, for example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27346  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 03:41:14 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						edab1b9133 
					 
					
						
						
							
							Constant fold all of the vector binops.  This allows us to compile this:  
						
						 
						
						... 
						
						
						
						"vector unsigned char mergeLowHigh = (vector unsigned char)
( 8, 9, 10, 11, 16, 17, 18, 19, 12, 13, 14, 15, 20, 21, 22, 23 );
vector unsigned char mergeHighLow = vec_xor( mergeLowHigh, vec_splat_u8(8));"
aka:
void %test2(<16 x sbyte>* %P) {
  store <16 x sbyte> cast (<4 x int> xor (<4 x int> cast (<16 x ubyte> < ubyte 8, ubyte 9, ubyte 10, ubyte 11, ubyte 16, ubyte 17, ubyte 18, ubyte 19, ubyte 12, ubyte 13, ubyte 14, ubyte 15, ubyte 20, ubyte 21, ubyte 22, ubyte 23 > to <4 x int>), <4 x int> cast (<16 x sbyte> < sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8 > to <4 x int>)) to <16 x sbyte>), <16 x sbyte> * %P
  ret void
}
into this:
_test2:
        mfspr r2, 256
        oris r4, r2, 32768
        mtspr 256, r4
        li r4, lo16(LCPI2_0)
        lis r5, ha16(LCPI2_0)
        lvx v0, r5, r4
        stvx v0, 0, r3
        mtspr 256, r2
        blr
instead of this:
_test2:
        mfspr r2, 256
        oris r4, r2, 49152
        mtspr 256, r4
        li r4, lo16(LCPI2_0)
        lis r5, ha16(LCPI2_0)
        vspltisb v0, 8
        lvx v1, r5, r4
        vxor v0, v1, v0
        stvx v0, 0, r3
        mtspr 256, r2
        blr
... which occurs here:
http://developer.apple.com/hardware/ve/calcspeed.html 
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27343  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 03:25:57 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5e46a19ec8 
					 
					
						
						
							
							Add a new -view-legalize-dags command line option  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27342  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 03:07:27 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6258fb2592 
					 
					
						
						
							
							Implement constant folding of bit_convert of arbitrary constant vbuild_vector nodes.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27341  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 02:53:43 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5e08a11039 
					 
					
						
						
							
							These entries already exist  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27340  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 02:51:27 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						97d23335ad 
					 
					
						
						
							
							Add some missing node names  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27339  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 02:41:18 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f8814cf8b8 
					 
					
						
						
							
							Prefer larger register classes over smaller ones when a register occurs in  
						
						 
						
						... 
						
						
						
						multiple register classes.  This fixes PowerPC/2006-04-01-FloatDoubleExtend.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27334  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-02 00:24:45 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f1d0c623c6 
					 
					
						
						
							
							Delete identity shuffles, implementing CodeGen/Generic/vector-identity-shuffle.ll  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27317  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 22:16:43 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c741ea424a 
					 
					
						
						
							
							Do not endian swap split vector loads.  This fixes UnitTests/Vector/sumarray-dbl on PPC.  
						
						 
						
						... 
						
						
						
						Now all UnitTests/Vector/* tests pass on PPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27299  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 18:22:37 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d9731af75b 
					 
					
						
						
							
							Do not endian swap the operands to a store if the operands came from a vector.  
						
						 
						
						... 
						
						
						
						This fixes UnitTests/Vector/simple.c with altivec.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27298  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 18:20:46 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						29cd7db310 
					 
					
						
						
							
							Remove dead *extloads.  This allows us to codegen vector.ll:test_extract_elt  
						
						 
						
						... 
						
						
						
						to:
test_extract_elt:
        alloc r3 = ar.pfs,0,1,0,0
        adds r8 = 12, r32
        ;;
        ldfs f8 = [r8]
        mov ar.pfs = r3
        br.ret.sptk.many rp
instead of:
test_extract_elt:
        alloc r3 = ar.pfs,0,1,0,0
        adds r8 = 28, r32
        adds r9 = 24, r32
        adds r10 = 20, r32
        adds r11 = 16, r32
        ;;
        ldfs f6 = [r8]
        ;;
        ldfs f6 = [r9]
        adds r8 = 12, r32
        adds r9 = 8, r32
        adds r14 = 4, r32
        ;;
        ldfs f6 = [r10]
        ;;
        ldfs f6 = [r11]
        ldfs f8 = [r8]
        ;;
        ldfs f6 = [r9]
        ;;
        ldfs f6 = [r14]
        ;;
        ldfs f6 = [r32]
        mov ar.pfs = r3
        br.ret.sptk.many rp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27297  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 18:10:41 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e4b953939c 
					 
					
						
						
							
							Delete dead loads in the dag.  This allows us to compile  
						
						 
						
						... 
						
						
						
						vector.ll:test_extract_elt2 into:
_test_extract_elt2:
        lfd f1, 32(r3)
        blr
instead of:
_test_extract_elt2:
        lfd f0, 56(r3)
        lfd f0, 48(r3)
        lfd f0, 40(r3)
        lfd f1, 32(r3)
        lfd f0, 24(r3)
        lfd f0, 16(r3)
        lfd f0, 8(r3)
        lfd f0, 0(r3)
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27296  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 18:06:18 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1597221eac 
					 
					
						
						
							
							Implement PromoteOp for VEXTRACT_VECTOR_ELT.  Thsi fixes  
						
						 
						
						... 
						
						
						
						Generic/vector.ll:test_extract_elt on non-sse X86 systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27294  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 17:55:51 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2ae2e98d4f 
					 
					
						
						
							
							Scalarized vector stores need not be legal, e.g. if the vector element type  
						
						 
						
						... 
						
						
						
						needs to be promoted or expanded.  Relegalize the scalar store once created.
This fixes CodeGen/Generic/vector.ll:test1 on non-SSE x86 targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27293  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 17:37:22 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7e02151ce2 
					 
					
						
						
							
							Make sure to pass enough values to phi nodes when we are dealing with  
						
						 
						
						... 
						
						
						
						decimated vectors.  This fixes UnitTests/Vector/sumarray-dbl.c
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27280  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 02:12:18 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						70c2a61e0a 
					 
					
						
						
							
							Significantly improve handling of vectors that are live across basic blocks,  
						
						 
						
						... 
						
						
						
						handling cases where the vector elements need promotion, expansion, and when
the vector type itself needs to be decimated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27278  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 02:06:56 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a6c9de4293 
					 
					
						
						
							
							Was returning the wrong type.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27277  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 01:50:09 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						eb0b461cf4 
					 
					
						
						
							
							Expand INSERT_VECTOR_ELT to store vec, sp; store elt, sp+k; vec = load sp;  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27274  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 01:27:51 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						79227e2906 
					 
					
						
						
							
							Modify the TargetLowering::getPackedTypeBreakdown method to also return the  
						
						 
						
						... 
						
						
						
						unpromoted element type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27273  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 00:46:36 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						dc87929609 
					 
					
						
						
							
							Implement TargetLowering::getPackedTypeBreakdown  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27270  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-31 00:28:56 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2bbd81064a 
					 
					
						
						
							
							Bug fixes: handle constantexpr insert/extract element operations  
						
						 
						
						... 
						
						
						
						Handle constantpacked vectors with constantexpr elements.
This fixes CodeGen/Generic/vector-constantexpr.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27241  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-29 00:11:43 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cef896e50c 
					 
					
						
						
							
							When building a VVECTOR_SHUFFLE node from extract_element operations, make  
						
						 
						
						... 
						
						
						
						sure to build it as SHUFFLE(X, undef, mask), not SHUFFLE(X, X, mask).
The later is not canonical form, and prevents the PPC splat pattern from
matching.  For a particular splat, we go from generating this:
	li r10, lo16(LCPI1_0)
	lis r11, ha16(LCPI1_0)
	lvx v3, r11, r10
	vperm v3, v2, v2, v3
to generating:
	vspltw v3, v2, 3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27236  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-28 22:19:47 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						66445d3e0a 
					 
					
						
						
							
							Canonicalize VECTOR_SHUFFLE(X, X, Y) -> VECTOR_SHUFFLE(X,undef,Y')  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27235  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-28 22:11:53 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d7648c8934 
					 
					
						
						
							
							Turn a series of extract_element's feeding a build_vector into a  
						
						 
						
						... 
						
						
						
						vector_shuffle node.  For this:
void test(__m128 *res, __m128 *A, __m128 *B) {
  *res = _mm_unpacklo_ps(*A, *B);
}
we now produce this code:
_test:
        movl 8(%esp), %eax
        movaps (%eax), %xmm0
        movl 12(%esp), %eax
        unpcklps (%eax), %xmm0
        movl 4(%esp), %eax
        movaps %xmm0, (%eax)
        ret
instead of this:
_test:
        subl $76, %esp
        movl 88(%esp), %eax
        movaps (%eax), %xmm0
        movaps %xmm0, (%esp)
        movaps %xmm0, 32(%esp)
        movss 4(%esp), %xmm0
        movss 32(%esp), %xmm1
        unpcklps %xmm0, %xmm1
        movl 84(%esp), %eax
        movaps (%eax), %xmm0
        movaps %xmm0, 16(%esp)
        movaps %xmm0, 48(%esp)
        movss 20(%esp), %xmm0
        movss 48(%esp), %xmm2
        unpcklps %xmm0, %xmm2
        unpcklps %xmm1, %xmm2
        movl 80(%esp), %eax
        movaps %xmm2, (%eax)
        addl $76, %esp
        ret
GCC produces this (with -fomit-frame-pointer):
_test:
        subl    $12, %esp
        movl    20(%esp), %eax
        movaps  (%eax), %xmm0
        movl    24(%esp), %eax
        unpcklps        (%eax), %xmm0
        movl    16(%esp), %eax
        movaps  %xmm0, (%eax)
        addl    $12, %esp
        ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27233  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-28 20:28:38 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5b2316e2b0 
					 
					
						
						
							
							Teach Legalize how to pack VVECTOR_SHUFFLE nodes into VECTOR_SHUFFLE nodes.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27232  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-28 20:24:43 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						354cde9a7e 
					 
					
						
						
							
							new node  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27231  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-28 19:54:42 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4fbdd59f4f 
					 
					
						
						
							
							Don't crash on X^X if X is a vector.  Instead, produce a vector of zeros.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27229  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-28 19:11:05 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f35b29765b 
					 
					
						
						
							
							Add an assertion  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27228  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-28 19:04:49 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						b3e7be25be 
					 
					
						
						
							
							Refactor address attributes.  Add base register to frame info.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27226  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-28 14:58:32 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						bf7637d590 
					 
					
						
						
							
							More bulletproofing of llvm.dbg.declare.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27224  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-28 13:45:20 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						aaa80ebd10 
					 
					
						
						
							
							More bulletproofing of DebugInfoDesc verify.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27203  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-28 01:30:18 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						48b61a729d 
					 
					
						
						
							
							Tblgen doesn't like multiple SDNode<> definitions that map to the sameenum value.  Split them into separate enums.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27201  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-28 00:40:33 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						8c39020359 
					 
					
						
						
							
							Reactivate llvm.dbg.declare.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27192  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-27 23:31:10 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						67995340fb 
					 
					
						
						
							
							Disable dbg_declare, it currently breaks the CFE build  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27182  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-27 21:36:03 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						13fc2f1d27 
					 
					
						
						
							
							Fix legalization of intrinsics with chain and result values  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27181  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-27 20:28:29 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						401ec7f6a9 
					 
					
						
						
							
							Unbreak the build on non-apple compilers :-(  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27173  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-27 16:10:59 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						23cc8708c3 
					 
					
						
						
							
							Try again  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27171  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-27 08:10:26 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f48b50a7ef 
					 
					
						
						
							
							Incorrect check for FP all one's  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27169  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-27 07:26:17 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a8df166fbe 
					 
					
						
						
							
							Change isBuildVectorAllOnesInteger to isBuildVectorAllOnes. Also check for  
						
						 
						
						... 
						
						
						
						floating point cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27165  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-27 06:58:47 +00:00