mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +00:00 
			
		
		
		
	original SDNode. This is badness. Also, this function allows one SDNode to point multiple flags to another SDNode. Badness as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106793 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			28 lines
		
	
	
		
			818 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			818 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
| ; RUN: llc < %s -O3 -mtriple=thumbv7-apple-darwin10 -mcpu=cortex-a8 -relocation-model=pic
 | |
| ; PR7484
 | |
| 
 | |
| %struct.gs_matrix = type { float, i32, float, i32, float, i32, float, i32, float, i32, float, i32 }
 | |
| 
 | |
| define fastcc void @func(%struct.gs_matrix* nocapture %pm1) nounwind {
 | |
| entry:
 | |
|   %0 = getelementptr inbounds %struct.gs_matrix* %pm1, i32 0, i32 6
 | |
|   %1 = load float* %0, align 4
 | |
|   %2 = getelementptr inbounds %struct.gs_matrix* %pm1, i32 0, i32 8
 | |
|   %3 = load float* %2, align 4
 | |
|   %4 = getelementptr inbounds %struct.gs_matrix* %pm1, i32 0, i32 2
 | |
|   %5 = bitcast float* %4 to i32*
 | |
|   %6 = load i32* %5, align 4
 | |
|   %7 = or i32 0, %6
 | |
|   %.mask = and i32 %7, 2147483647
 | |
|   %8 = icmp eq i32 %.mask, 0
 | |
|   br i1 %8, label %bb, label %bb11
 | |
| 
 | |
| bb:
 | |
|   ret void
 | |
| 
 | |
| bb11:
 | |
|   %9 = fmul float %1, undef
 | |
|   %10 = fmul float %3, undef
 | |
|   ret void
 | |
| }
 |