15 lines
		
	
	
		
			400 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			15 lines
		
	
	
		
			400 B
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: llc -O2 -mtriple=x86_64-- -stop-after=finalize-isel < %s | FileCheck %s
 | 
						|
 | 
						|
define i1 @fold_test(ptr %x, i64 %l) {
 | 
						|
entry:
 | 
						|
  %0 = load i64, ptr %x, align 8
 | 
						|
  %and = and i64 %0, %l
 | 
						|
  %tobool = icmp ne i64 %and, 0
 | 
						|
  ret i1 %tobool
 | 
						|
 | 
						|
  ; Folding the load+and+icmp instructions into a TEST64mr instruction
 | 
						|
  ; should preserve memory operands.
 | 
						|
  ; CHECK: TEST64mr {{.*}} :: (load (s64) from {{%.*}})
 | 
						|
}
 | 
						|
 |