mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +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
 | 
						|
}
 |