46 lines · plain
1; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s2; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s3 4; The comparison uses the pre-inc value, which could lead LSR to5; try to compute -INT64_MIN.6 7; CHECK-NOT: movabsq $-9223372036854775808, %rax8; CHECK: negq %r9; CHECK-NEXT: seto %al10 11declare i64 @bar()12 13define i1 @foo() nounwind {14entry:15 br label %for.cond.i16 17for.cond.i:18 %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.cond.i ]19 %t = call i64 @bar()20 %indvar.next = add i64 %indvar, 121 %s = icmp ne i64 %indvar.next, %t22 br i1 %s, label %for.cond.i, label %__ABContainsLabel.exit23 24__ABContainsLabel.exit:25 %cmp = icmp eq i64 %indvar, 922337203685477580726 ret i1 %cmp27}28 29define void @func_37(i1 %arg) noreturn nounwind readonly {30entry:31 br label %for.body32 33for.body: ; preds = %for.inc8, %entry34 %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.inc8 ]35 %sub.i = add i64 undef, %indvar36 %cmp.i = icmp eq i64 %sub.i, -922337203685477580837 br i1 %arg, label %for.inc8, label %for.cond438 39for.cond4: ; preds = %for.cond4, %for.body40 br label %for.cond441 42for.inc8: ; preds = %for.body43 %indvar.next = add i64 %indvar, 144 br label %for.body45}46