1*9880d681SAndroid Build Coastguard Worker; RUN: opt -S -indvars < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; The indvar simplification code should ensure that the first PHI in the block 4*9880d681SAndroid Build Coastguard Worker; is the canonical one! 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine i32 @test() { 7*9880d681SAndroid Build Coastguard Worker; <label>:0 8*9880d681SAndroid Build Coastguard Worker br label %Loop 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard WorkerLoop: ; preds = %Loop, %0 11*9880d681SAndroid Build Coastguard Worker; CHECK: Loop: 12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: Canonical 13*9880d681SAndroid Build Coastguard Worker %NonIndvar = phi i32 [ 200, %0 ], [ %NonIndvarNext, %Loop ] ; <i32> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker %Canonical = phi i32 [ 0, %0 ], [ %CanonicalNext, %Loop ] ; <i32> [#uses=2] 15*9880d681SAndroid Build Coastguard Worker store i32 %Canonical, i32* null 16*9880d681SAndroid Build Coastguard Worker %NonIndvarNext = sdiv i32 %NonIndvar, 2 ; <i32> [#uses=1] 17*9880d681SAndroid Build Coastguard Worker %CanonicalNext = add i32 %Canonical, 1 ; <i32> [#uses=1] 18*9880d681SAndroid Build Coastguard Worker br label %Loop 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21