1*c64334fbSArthur Eubanks; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*c64334fbSArthur Eubanks; RUN: llc -mtriple=x86_64-linux-gnu -fast-isel -fast-isel-abort=3 -code-model=medium -large-data-threshold=5 < %s | FileCheck %s 3*c64334fbSArthur Eubanks; RUN: llc -mtriple=x86_64-linux-gnu -fast-isel -code-model=medium -large-data-threshold=3 < %s -o /dev/null \ 4*c64334fbSArthur Eubanks; RUN: -pass-remarks-output=- -pass-remarks-filter=sdagisel | FileCheck %s --check-prefix=FALLBACK --implicit-check-not=missed 5*c64334fbSArthur Eubanks 6*c64334fbSArthur Eubanksdeclare void @foo() 7*c64334fbSArthur Eubanks 8*c64334fbSArthur Eubanksdefine void @call_foo() { 9*c64334fbSArthur Eubanks; CHECK-LABEL: call_foo: 10*c64334fbSArthur Eubanks; CHECK: # %bb.0: 11*c64334fbSArthur Eubanks; CHECK-NEXT: pushq %rax 12*c64334fbSArthur Eubanks; CHECK-NEXT: .cfi_def_cfa_offset 16 13*c64334fbSArthur Eubanks; CHECK-NEXT: callq foo@PLT 14*c64334fbSArthur Eubanks; CHECK-NEXT: popq %rax 15*c64334fbSArthur Eubanks; CHECK-NEXT: .cfi_def_cfa_offset 8 16*c64334fbSArthur Eubanks; CHECK-NEXT: retq 17*c64334fbSArthur Eubanks call void @foo() 18*c64334fbSArthur Eubanks ret void 19*c64334fbSArthur Eubanks} 20*c64334fbSArthur Eubanks 21*c64334fbSArthur Eubanks@g = internal global i32 42 22*c64334fbSArthur Eubanks 23*c64334fbSArthur Eubanks; FALLBACK: FastISel missed terminator 24*c64334fbSArthur Eubanks; FALLBACK: in function: g_addr 25*c64334fbSArthur Eubanks 26*c64334fbSArthur Eubanksdefine ptr @g_addr() { 27*c64334fbSArthur Eubanks; CHECK-LABEL: g_addr: 28*c64334fbSArthur Eubanks; CHECK: # %bb.0: 29*c64334fbSArthur Eubanks; CHECK-NEXT: movabsq $g, %rax 30*c64334fbSArthur Eubanks; CHECK-NEXT: retq 31*c64334fbSArthur Eubanks ret ptr @g 32*c64334fbSArthur Eubanks} 33*c64334fbSArthur Eubanks 34*c64334fbSArthur Eubanks; FALLBACK: FastISel missed 35*c64334fbSArthur Eubanks; FALLBACK: in function: load_g 36*c64334fbSArthur Eubanks 37*c64334fbSArthur Eubanksdefine i32 @load_g() { 38*c64334fbSArthur Eubanks; CHECK-LABEL: load_g: 39*c64334fbSArthur Eubanks; CHECK: # %bb.0: 40*c64334fbSArthur Eubanks; CHECK-NEXT: movl g, %eax 41*c64334fbSArthur Eubanks; CHECK-NEXT: retq 42*c64334fbSArthur Eubanks %i = load i32, ptr @g 43*c64334fbSArthur Eubanks ret i32 %i 44*c64334fbSArthur Eubanks} 45