Skip to content
  1. Aug 09, 2010
  2. Aug 07, 2010
  3. Aug 06, 2010
  4. Aug 05, 2010
  5. Aug 04, 2010
  6. Jul 31, 2010
  7. Jul 30, 2010
  8. Jul 29, 2010
    • Jakob Stoklund Olesen's avatar
      Revert r109652, and remove the offending assert in loadRegFromStackSlot instead. · ba0e124a
      Jakob Stoklund Olesen authored
      We do sometimes load from a too small stack slot when dealing with x86 arguments
      (varargs and smaller-than-32-bit args). It looks like we know what we are doing
      in those cases, so I am going to remove the assert instead of artifically
      enlarging stack slot sizes.
      
      The assert in storeRegToStackSlot stays in. We don't want to write beyond the
      bounds of a stack slot.
      
      llvm-svn: 109764
      ba0e124a
  9. Jul 28, 2010
    • Jakob Stoklund Olesen's avatar
      Create a fixed stack object for varargs that is as large as any register. · f2234fbe
      Jakob Stoklund Olesen authored
      The size of this object isn't used for anything - technically it is of variable
      size.
      
      This avoids a false positive from the assert in
      X86InstrInfo::loadRegFromStackSlot, and fixes PR7735.
      
      llvm-svn: 109652
      f2234fbe
    • Nate Begeman's avatar
      Implement a vectorized algorithm for <16 x i8> << <16 x i8> · 53afc8f0
      Nate Begeman authored
      This is about 4x faster and smaller than the existing scalarization.
      
      llvm-svn: 109566
      53afc8f0
    • Nate Begeman's avatar
      ~40% faster vector shl <4 x i32> on SSE 4.1 Larger improvements for smaller... · 269a6da0
      Nate Begeman authored
      ~40% faster vector shl <4 x i32> on SSE 4.1  Larger improvements for smaller types coming in future patches.
      
      For:
      
      define <2 x i64> @shl(<4 x i32> %r, <4 x i32> %a) nounwind readnone ssp {
      entry:
        %shl = shl <4 x i32> %r, %a                     ; <<4 x i32>> [#uses=1]
        %tmp2 = bitcast <4 x i32> %shl to <2 x i64>     ; <<2 x i64>> [#uses=1]
        ret <2 x i64> %tmp2
      }
      
      We get:
      
      _shl:                                   ## @shl
      	pslld	$23, %xmm1
      	paddd	LCPI0_0, %xmm1
      	cvttps2dq	%xmm1, %xmm1
      	pmulld	%xmm1, %xmm0
      	ret
      
      Instead of:
      
      _shl:                                   ## @shl
      	pshufd	$3, %xmm0, %xmm2
      	movd	%xmm2, %eax
      	pshufd	$3, %xmm1, %xmm2
      	movd	%xmm2, %ecx
      	shll	%cl, %eax
      	movd	%eax, %xmm2
      	pshufd	$1, %xmm0, %xmm3
      	movd	%xmm3, %eax
      	pshufd	$1, %xmm1, %xmm3
      	movd	%xmm3, %ecx
      	shll	%cl, %eax
      	movd	%eax, %xmm3
      	punpckldq	%xmm2, %xmm3
      	movd	%xmm0, %eax
      	movd	%xmm1, %ecx
      	shll	%cl, %eax
      	movd	%eax, %xmm2
      	movhlps	%xmm0, %xmm0
      	movd	%xmm0, %eax
      	movhlps	%xmm1, %xmm1
      	movd	%xmm1, %ecx
      	shll	%cl, %eax
      	movd	%eax, %xmm0
      	punpckldq	%xmm0, %xmm2
      	movdqa	%xmm2, %xmm0
      	punpckldq	%xmm3, %xmm0
      	ret
      
      llvm-svn: 109549
      269a6da0
  10. Jul 27, 2010
  11. Jul 26, 2010
  12. Jul 24, 2010
Loading