brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 3b414f2 Raw
46 lines · plain
1; RUN: opt -disable-output "-passes=print<scalar-evolution>" < %s 2>&1 | FileCheck %s2 3define void @f(ptr %condition) {4; CHECK-LABEL: Classifying expressions for: @f5 entry: 6  br label %loop7 8 loop:9  %idx = phi i32 [ 0, %entry ], [ %idx.inc, %loop ]10  %idx.inc = add nsw i32 %idx, 111 12  %idx.inc2 = add i32 %idx.inc, 113  %idx.inc2.zext = zext i32 %idx.inc2 to i6414 15; CHECK: %idx.inc2.zext = zext i32 %idx.inc2 to i6416; CHECK-NEXT: -->  {2,+,1}<nuw><%loop>17 18  %c = load volatile i1, ptr %condition19  br i1 %c, label %loop, label %exit20 21 exit:22  ret void23}24 25define void @g(ptr %condition) {26; CHECK-LABEL: Classifying expressions for: @g27 entry:28  br label %loop29 30 loop:31  %idx = phi i32 [ 0, %entry ], [ %idx.inc, %loop ]32  %idx.inc = add nsw i32 %idx, 333 34  %idx.inc2 = add i32 %idx.inc, -135  %idx.inc2.sext = sext i32 %idx.inc2 to i6436; CHECK: %idx.inc2.sext = sext i32 %idx.inc2 to i6437; CHECK-NEXT: -->  {2,+,3}<nuw><nsw><%loop>38 39  %cond.gep = getelementptr inbounds i1, ptr %condition, i32 %idx.inc40  %c = load volatile i1, ptr %cond.gep41  br i1 %c, label %loop, label %exit42 43 exit:44  ret void45}46