; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6 ; RUN: llc < %s -mtriple=x86_64 | FileCheck %s define void @f1(i64 %a, i64 %b) { ; CHECK-LABEL: f1: ; CHECK: # %bb.0: ; CHECK-NEXT: cmpq %rsi, %rdi ; CHECK-NEXT: .Ltmp0: ; CHECK-NEXT: jb .Ltmp0 ; CHECK-NEXT: retq %cmp = icmp ult i64 %a, %b call void @llvm.cond.loop(i1 %cmp) ret void } define void @f2() { ; CHECK-LABEL: f2: ; CHECK: # %bb.0: ; CHECK-NEXT: movb $1, %al ; CHECK-NEXT: testb %al, %al ; CHECK-NEXT: .Ltmp1: ; CHECK-NEXT: jne .Ltmp1 ; CHECK-NEXT: retq call void @llvm.cond.loop(i1 true) ret void } define void @f3(i1 %p) { ; CHECK-LABEL: f3: ; CHECK: # %bb.0: ; CHECK-NEXT: testb $1, %dil ; CHECK-NEXT: .Ltmp2: ; CHECK-NEXT: jne .Ltmp2 ; CHECK-NEXT: retq call void @llvm.cond.loop(i1 %p) ret void } define void @f4(i32 %a, i32 %b) { ; CHECK-LABEL: f4: ; CHECK: # %bb.0: ; CHECK-NEXT: addl %esi, %edi ; CHECK-NEXT: .Ltmp3: ; CHECK-NEXT: jo .Ltmp3 ; CHECK-NEXT: retq %add = call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %a, i32 %b) %overflow = extractvalue { i32, i1 } %add, 1 tail call void @llvm.cond.loop(i1 %overflow) ret void }