brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · cc7e1a9 Raw
68 lines · plain
1; RUN: llc -mtriple=x86_64-pc-windows-msvc < %s | FileCheck %s --check-prefix=CHECK2; RUN: llc --fast-isel -mtriple=x86_64-pc-windows-msvc < %s | FileCheck %s --check-prefix=CHECK3; RUN: llc --global-isel --global-isel-abort=2 -mtriple=x86_64-pc-windows-msvc < %s | FileCheck %s --check-prefix=CHECK4 5define dso_local void @normal_call(ptr noundef readonly %func_ptr) local_unnamed_addr section "nc_sect" {6entry:7  call void @a()8  call void @a()9  call void %func_ptr()10  ret void11}12; CHECK-LABEL:  normal_call:13; CHECK:        .Limpcall0:14; CHECK-NEXT:     rex6415; CHECK-NEXT:     callq   __imp_a16; CHECK-NEXT:     nopl    8(%rax,%rax)17; CHECK-NEXT:   .Limpcall1:18; CHECK-NEXT:     rex6419; CHECK-NEXT:     callq   __imp_a20; CHECK-NEXT:     nopl    8(%rax,%rax)21; CHECK-NEXT:     movq    %rsi, %rax22; CHECK-NEXT:   .Limpcall2:23; CHECK-NEXT:     callq   *%rax24; CHECK-NEXT:     nopl    (%rax)25; CHECK-NEXT:     nop26 27define dso_local void @tail_call() local_unnamed_addr section "tc_sect" {28entry:29  tail call void @b()30  ret void31}32; CHECK-LABEL:  tail_call:33; CHECK:        .Limpcall3:34; CHECK-NEXT:     jmp __imp_b35 36define dso_local void @tail_call_fp(ptr noundef readonly %func_ptr) local_unnamed_addr section "tc_sect" {37entry:38  tail call void %func_ptr()39  ret void40}41; CHECK-LABEL:  tail_call_fp:42; CHECK:          movq    %rcx, %rax43; CHECK-NEXT:   .Limpcall4:44; CHECK-NEXT:     rex64 jmpq      *%rax45 46declare dllimport void @a() local_unnamed_addr47declare dllimport void @b() local_unnamed_addr48 49; CHECK-LABEL  .section   .retplne,"yi"50; CHECK-NEXT   .asciz  "RetpolineV1"51; CHECK-NEXT   .long   2452; CHECK-NEXT   .secnum tc_sect53; CHECK-NEXT   .long   354; CHECK-NEXT   .secoffset      .Limpcall355; CHECK-NEXT   .long   556; CHECK-NEXT   .secoffset      .Limpcall457; CHECK-NEXT   .long   3258; CHECK-NEXT   .secnum nc_sect59; CHECK-NEXT   .long   360; CHECK-NEXT   .secoffset      .Limpcall061; CHECK-NEXT   .long   362; CHECK-NEXT   .secoffset      .Limpcall163; CHECK-NEXT   .long   564; CHECK-NEXT   .secoffset      .Limpcall265 66!llvm.module.flags = !{!0}67!0 = !{i32 1, !"import-call-optimization", i32 1}68