Skip to content
  1. Aug 13, 2007
  2. Aug 12, 2007
  3. Aug 11, 2007
  4. Aug 10, 2007
  5. Aug 09, 2007
    • Evan Cheng's avatar
      divb / mulb outputs to ah. Under x86-64 it's not legal to read ah if the... · e32e923a
      Evan Cheng authored
      divb / mulb outputs to ah. Under x86-64 it's not legal to read ah if the instruction requires a rex prefix (i.e. outputs to r8b, etc.). So issue shift right by 8 on AX and then truncate it to 8 bits instead.
      
      llvm-svn: 40972
      e32e923a
    • Chris Lattner's avatar
      when we see a unaligned load from an insufficiently aligned global or · a8e4b4bc
      Chris Lattner authored
      alloca, increase the alignment of the load, turning it into an aligned load.
      
      This allows us to compile:
      
      #include <xmmintrin.h>
      __m128i foo(__m128i x){
       static const unsigned int c_0[4] = { 0, 0, 0, 0 };
      	  __m128i v_Zero = _mm_loadu_si128((__m128i*)c_0);
        x  = _mm_unpacklo_epi8(x,  v_Zero);
        return x;
      }
      
      into:
      
      _foo:
      	punpcklbw	_c_0.5944, %xmm0
      	ret
      	.data
      	.lcomm	_c_0.5944,16,4		# c_0.5944
      
      instead of:
      
      _foo:
      	movdqu	_c_0.5944, %xmm1
      	punpcklbw	%xmm1, %xmm0
      	ret
      	.data
      	.lcomm	_c_0.5944,16,2		# c_0.5944
      
      llvm-svn: 40971
      a8e4b4bc
Loading