brintos

brintos / llvm-project-archived public Read only

0
0
Text · 989 B · 20c3c50 Raw
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