mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +00:00 
			
		
		
		
	1. rename the movhp patfrag to movlhps, since thats what it actually matches 2. eliminate the bogus movhps load and store patterns, they were incorrect. The load transforms are already handled (correctly) by shufps/unpack. 3. revert a recent test change to its correct form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86415 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			21 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			LLVM
		
	
	
	
	
	
| ; RUN: llc < %s -march=x86 -mattr=+sse2 -o %t
 | |
| ; RUN: grep movlhps %t | count 1
 | |
| ; RUN: grep movhlps %t | count 1
 | |
| 
 | |
| define <4 x float> @test1(<4 x float>* %x, <4 x float>* %y) {
 | |
|         %tmp = load <4 x float>* %y             ; <<4 x float>> [#uses=2]
 | |
|         %tmp5 = load <4 x float>* %x            ; <<4 x float>> [#uses=2]
 | |
|         %tmp9 = fadd <4 x float> %tmp5, %tmp             ; <<4 x float>> [#uses=1]
 | |
|         %tmp21 = fsub <4 x float> %tmp5, %tmp            ; <<4 x float>> [#uses=1]
 | |
|         %tmp27 = shufflevector <4 x float> %tmp9, <4 x float> %tmp21, <4 x i32> < i32 0, i32 1, i32 4, i32 5 >                ; <<4 x float>> [#uses=1]
 | |
|         ret <4 x float> %tmp27
 | |
| }
 | |
| 
 | |
| define <4 x float> @movhl(<4 x float>* %x, <4 x float>* %y) {
 | |
| entry:
 | |
|         %tmp = load <4 x float>* %y             ; <<4 x float>> [#uses=1]
 | |
|         %tmp3 = load <4 x float>* %x            ; <<4 x float>> [#uses=1]
 | |
|         %tmp4 = shufflevector <4 x float> %tmp3, <4 x float> %tmp, <4 x i32> < i32 2, i32 3, i32 6, i32 7 >           ; <<4 x float>> [#uses=1]
 | |
|         ret <4 x float> %tmp4
 | |
| }
 |