brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · fe22b25 Raw
84 lines · plain
1; RUN: llc -mtriple=x86_64-pc-windows-msvc < %s | FileCheck %s2 3; CHECK-LABEL:  uses_rax:4; CHECK:        .Limpcall0:5; CHECK-NEXT:     jmpq    *%rax6 7define void @uses_rax(i32 %x) {8entry:9  switch i32 %x, label %sw.epilog [10    i32 0, label %sw.bb11    i32 1, label %sw.bb112    i32 2, label %sw.bb213    i32 3, label %sw.bb314  ]15 16sw.bb:17  tail call void @g(i32 0) #218  br label %sw.epilog19 20sw.bb1:21  tail call void @g(i32 1) #222  br label %sw.epilog23 24sw.bb2:25  tail call void @g(i32 2) #226  br label %sw.epilog27 28sw.bb3:29  tail call void @g(i32 3) #230  br label %sw.epilog31 32sw.epilog:33  tail call void @g(i32 10) #234  ret void35}36 37; CHECK-LABEL:  uses_rcx:38; CHECK:        .Limpcall1:39; CHECK-NEXT:     jmpq    *%rcx40 41define void @uses_rcx(i32 %x) {42entry:43  switch i32 %x, label %sw.epilog [44    i32 10, label %sw.bb45    i32 11, label %sw.bb146    i32 12, label %sw.bb247    i32 13, label %sw.bb348  ]49 50sw.bb:51  tail call void @g(i32 0) #252  br label %sw.epilog53 54sw.bb1:55  tail call void @g(i32 1) #256  br label %sw.epilog57 58sw.bb2:59  tail call void @g(i32 2) #260  br label %sw.epilog61 62sw.bb3:63  tail call void @g(i32 3) #264  br label %sw.epilog65 66sw.epilog:67  tail call void @g(i32 10) #268  ret void69}70 71declare void @g(i32)72 73; CHECK-LABEL:  .section        .retplne,"yi"74; CHECK-NEXT:   .asciz  "RetpolineV1"75; CHECK-NEXT:   .long   2476; CHECK-NEXT:   .secnum .text77; CHECK-NEXT:   .long   1678; CHECK-NEXT:   .secoffset      .Limpcall079; CHECK-NEXT:   .long   1780; CHECK-NEXT:   .secoffset      .Limpcall181 82!llvm.module.flags = !{!0}83!0 = !{i32 1, !"import-call-optimization", i32 1}84