mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-30 16:17:05 +00:00 
			
		
		
		
	have complex pointer manipulation going on.  This allows us to compile
stuff like this:
__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:
        xorps   %xmm1, %xmm1
        punpcklbw       %xmm1, %xmm0
        ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41022 91177308-0d34-0410-b5e6-96231b3b80d8
		
	
		
			
				
	
	
		
			12 lines
		
	
	
		
			259 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			12 lines
		
	
	
		
			259 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
| ; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep load
 | |
| 
 | |
| @GLOBAL = internal constant [4 x i32] zeroinitializer
 | |
| 
 | |
| 
 | |
| define <16 x i8> @foo(<2 x i64> %x) {
 | |
| entry:
 | |
| 	%tmp = load <16 x i8> * bitcast ([4 x i32]* @GLOBAL to <16 x i8>*)
 | |
| 	ret <16 x i8> %tmp
 | |
| }
 | |
| 
 |