1; RUN: opt -analyze -scalar-evolution < %s | FileCheck %s 2 3define i32 @branch_true(i32 %x, i32 %y) { 4; CHECK-LABEL: Classifying expressions for: @branch_true 5 entry: 6 br i1 true, label %add, label %merge 7 8 add: 9 %sum = add i32 %x, %y 10 br label %merge 11 12 merge: 13 %v = phi i32 [ %sum, %add ], [ %x, %entry ] 14; CHECK: %v = phi i32 [ %sum, %add ], [ %x, %entry ] 15; CHECK-NEXT: --> (%x + %y) U: full-set S: full-set 16 ret i32 %v 17} 18 19define i32 @branch_false(i32 %x, i32 %y) { 20; CHECK-LABEL: Classifying expressions for: @branch_false 21 entry: 22 br i1 false, label %add, label %merge 23 24 add: 25 %sum = add i32 %x, %y 26 br label %merge 27 28 merge: 29 %v = phi i32 [ %sum, %add ], [ %x, %entry ] 30; CHECK: %v = phi i32 [ %sum, %add ], [ %x, %entry ] 31; CHECK-NEXT: --> %x U: full-set S: full-set 32 ret i32 %v 33} 34 35define i32 @select_true(i32 %x, i32 %y) { 36; CHECK-LABEL: Classifying expressions for: @select_true 37 entry: 38 %v = select i1 true, i32 %x, i32 %y 39; CHECK: %v = select i1 true, i32 %x, i32 %y 40; CHECK-NEXT: --> %x U: full-set S: full-set 41 ret i32 %v 42} 43 44define i32 @select_false(i32 %x, i32 %y) { 45; CHECK-LABEL: Classifying expressions for: @select_false 46 entry: 47 %v = select i1 false, i32 %x, i32 %y 48; CHECK: %v = select i1 false, i32 %x, i32 %y 49; CHECK-NEXT: --> %y U: full-set S: full-set 50 ret i32 %v 51} 52