46 lines · plain
1; RUN: opt -S -passes=indvars < %s | FileCheck %s2 3declare void @use(i1)4 5define void @sext_condition(i8 %t) {6; CHECK-LABEL: sext_condition7 entry:8 %st = sext i8 %t to i169 %ecmp = icmp slt i16 %st, 4210 br i1 %ecmp, label %loop, label %exit11 12 loop:13; CHECK-LABEL: loop14 %idx = phi i8 [ %t, %entry ], [ %idx.inc, %loop ]15 %idx.inc = add i8 %idx, 116 %c = icmp slt i8 %idx, 4217; CHECK: call void @use(i1 true)18 call void @use(i1 %c)19 %be = icmp slt i8 %idx.inc, 4220 br i1 %be, label %loop, label %exit21 22 exit:23 ret void24}25 26define void @zext_condition(i8 %t) {27; CHECK-LABEL: zext_condition28 entry:29 %st = zext i8 %t to i1630 %ecmp = icmp ult i16 %st, 4231 br i1 %ecmp, label %loop, label %exit32 33 loop:34; CHECK-LABEL: loop35 %idx = phi i8 [ %t, %entry ], [ %idx.inc, %loop ]36 %idx.inc = add i8 %idx, 137 %c = icmp ult i8 %idx, 4238; CHECK: call void @use(i1 true)39 call void @use(i1 %c)40 %be = icmp ult i8 %idx.inc, 4241 br i1 %be, label %loop, label %exit42 43 exit:44 ret void45}46