brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · c659e0e Raw
67 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 62; RUN: llc --fast-isel < %s -mtriple=x86_64-unknown-unknown | FileCheck %s3 4define i8 @test_direct_call(ptr %f) nounwind {5; CHECK-LABEL: test_direct_call:6; CHECK:       # %bb.0: # %entry7; CHECK-NEXT:    pushq %rax8; CHECK-NEXT:    callq foo@PLT9; CHECK-NEXT:    callq bar@PLT10; CHECK-NEXT:    popq %rcx11; CHECK-NEXT:    retq12entry:13  %call = call bfloat @foo(ptr %f)14  %call2 = call zeroext i8 @bar(bfloat %call)15  ret i8 %call216}17 18define i8 @test_fast_direct_call(ptr %f) nounwind {19; CHECK-LABEL: test_fast_direct_call:20; CHECK:       # %bb.0: # %entry21; CHECK-NEXT:    pushq %rax22; CHECK-NEXT:    callq foo_fast@PLT23; CHECK-NEXT:    callq bar@PLT24; CHECK-NEXT:    popq %rcx25; CHECK-NEXT:    retq26entry:27  %call = call fastcc bfloat @foo_fast(ptr %f)28  %call2 = call zeroext i8 @bar(bfloat %call)29  ret i8 %call230}31 32define i8 @test_indirect_all(ptr %fptr, ptr %f) nounwind {33; CHECK-LABEL: test_indirect_all:34; CHECK:       # %bb.0: # %entry35; CHECK-NEXT:    pushq %rbx36; CHECK-NEXT:    movq %rdi, %rbx37; CHECK-NEXT:    movq %rsi, %rdi38; CHECK-NEXT:    callq foo@PLT39; CHECK-NEXT:    callq *%rbx40; CHECK-NEXT:    popq %rbx41; CHECK-NEXT:    retq42entry:43  %call = call bfloat @foo(ptr %f)44  %call2 = call zeroext i8 %fptr(bfloat %call)45  ret i8 %call246}47 48define i8 @test_fast_indirect_all(ptr %fptr, ptr %f) nounwind {49; CHECK-LABEL: test_fast_indirect_all:50; CHECK:       # %bb.0: # %entry51; CHECK-NEXT:    pushq %rbx52; CHECK-NEXT:    movq %rdi, %rbx53; CHECK-NEXT:    movq %rsi, %rdi54; CHECK-NEXT:    callq foo@PLT55; CHECK-NEXT:    callq *%rbx56; CHECK-NEXT:    popq %rbx57; CHECK-NEXT:    retq58entry:59  %call = call fastcc bfloat @foo(ptr %f)60  %call2 = call zeroext i8 %fptr(bfloat %call)61  ret i8 %call262}63 64declare bfloat @foo(ptr %f)65declare zeroext i8 @bar(bfloat)66declare fastcc bfloat @foo_fast(ptr %f)67