21 lines
		
	
	
		
			691 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			691 B
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: opt -S -indvars < %s | FileCheck %s
 | 
						|
 | 
						|
; The indvar simplification code should ensure that the first PHI in the block 
 | 
						|
; is the canonical one!
 | 
						|
 | 
						|
define i32 @test() {
 | 
						|
; <label>:0
 | 
						|
        br label %Loop
 | 
						|
 | 
						|
Loop:           ; preds = %Loop, %0
 | 
						|
; CHECK: Loop:
 | 
						|
; CHECK-NEXT: Canonical
 | 
						|
        %NonIndvar = phi i32 [ 200, %0 ], [ %NonIndvarNext, %Loop ]             ; <i32> [#uses=1]
 | 
						|
        %Canonical = phi i32 [ 0, %0 ], [ %CanonicalNext, %Loop ]               ; <i32> [#uses=2]
 | 
						|
        store i32 %Canonical, i32* null
 | 
						|
        %NonIndvarNext = sdiv i32 %NonIndvar, 2         ; <i32> [#uses=1]
 | 
						|
        %CanonicalNext = add i32 %Canonical, 1          ; <i32> [#uses=1]
 | 
						|
        br label %Loop
 | 
						|
}
 | 
						|
 |