You've already forked linux-packaging-mono
							
							
		
			
	
	
		
			28 lines
		
	
	
		
			559 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			559 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
|   | ; RUN: opt -indvars -S < %s | FileCheck %s
 | ||
|  | 
 | ||
|  | declare void @use(i1) | ||
|  | 
 | ||
|  | define void @f() { | ||
|  | ; CHECK-LABEL: @f(
 | ||
|  |  entry: | ||
|  |   %x = alloca i32 | ||
|  |   %y = alloca i32 | ||
|  |   br label %loop | ||
|  | 
 | ||
|  |  loop: | ||
|  |   %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ] | ||
|  |   %iv.inc = add i32 %iv, 1 | ||
|  | 
 | ||
|  |   %x.gep = getelementptr i32, i32* %x, i32 %iv | ||
|  |   %eql = icmp eq i32* %x.gep, %y | ||
|  | ; CHECK-NOT: @use(i1 true)
 | ||
|  |   call void @use(i1 %eql) | ||
|  | 
 | ||
|  |   ; %be.cond deliberately 'false' -- we want want the trip count to be 0.
 | ||
|  |   %be.cond = icmp ult i32 %iv, 0 | ||
|  |   br i1 %be.cond, label %loop, label %leave | ||
|  | 
 | ||
|  |  leave: | ||
|  |   ret void | ||
|  | } |