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