71 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2;RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s3 4define void @bar(i32 %0, i32 %1) nounwind {5; CHECK-LABEL: bar:6; CHECK: # %bb.0:7; CHECK-NEXT: testl %edi, %edi8; CHECK-NEXT: je .LBB0_49; CHECK-NEXT: # %bb.1: # %.preheader10; CHECK-NEXT: pushq %rbx11; CHECK-NEXT: movl %edi, %ebx12; CHECK-NEXT: decl %ebx13; CHECK-NEXT: .p2align 414; CHECK-NEXT: .LBB0_2: # =>This Inner Loop Header: Depth=115; CHECK-NEXT: movl %ebx, %edi16; CHECK-NEXT: callq foo@PLT17; CHECK-NEXT: addl $-1, %ebx18; CHECK-NEXT: jb .LBB0_219; CHECK-NEXT: # %bb.3:20; CHECK-NEXT: popq %rbx21; CHECK-NEXT: .LBB0_4:22; CHECK-NEXT: retq23 %3 = icmp eq i32 %0, 024 br i1 %3, label %8, label %425 264: ; preds = %2, %427 %5 = phi i32 [ %6, %4 ], [ %0, %2 ]28 %6 = add nsw i32 %5, -129 tail call void @foo(i32 %6)30 %7 = icmp eq i32 %6, 031 br i1 %7, label %8, label %432 338: ; preds = %4, %234 ret void35}36 37define void @baz(i32 %0, i32 %1) nounwind {38; CHECK-LABEL: baz:39; CHECK: # %bb.0:40; CHECK-NEXT: testl %edi, %edi41; CHECK-NEXT: je .LBB1_442; CHECK-NEXT: # %bb.1: # %.preheader43; CHECK-NEXT: pushq %rbx44; CHECK-NEXT: movl %edi, %ebx45; CHECK-NEXT: decl %ebx46; CHECK-NEXT: .p2align 447; CHECK-NEXT: .LBB1_2: # =>This Inner Loop Header: Depth=148; CHECK-NEXT: movl %ebx, %edi49; CHECK-NEXT: callq foo@PLT50; CHECK-NEXT: addl $-1, %ebx51; CHECK-NEXT: jae .LBB1_252; CHECK-NEXT: # %bb.3:53; CHECK-NEXT: popq %rbx54; CHECK-NEXT: .LBB1_4:55; CHECK-NEXT: retq56 %3 = icmp eq i32 %0, 057 br i1 %3, label %8, label %458 594: ; preds = %2, %460 %5 = phi i32 [ %6, %4 ], [ %0, %2 ]61 %6 = add nsw i32 %5, -162 tail call void @foo(i32 %6)63 %7 = icmp ne i32 %6, 064 br i1 %7, label %8, label %465 668: ; preds = %4, %267 ret void68}69 70declare void @foo(i32)71