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