1*9880d681SAndroid Build Coastguard Worker# RUN: llc -mtriple=x86_64-apple-darwin -stop-after branch-folder -start-after branch-folder -o - %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker# This test verifies that the machine verifier won't report an error when 3*9880d681SAndroid Build Coastguard Worker# verifying the PATCHPOINT instruction. 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker--- | 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker define void @small_patchpoint_codegen(i64 %p1, i64 %p2, i64 %p3, i64 %p4) { 8*9880d681SAndroid Build Coastguard Worker entry: 9*9880d681SAndroid Build Coastguard Worker %result = tail call i64 (i64, i32, i8*, i32, ...) @llvm.experimental.patchpoint.i64(i64 5, i32 5, i8* null, i32 2, i64 %p1, i64 %p2) 10*9880d681SAndroid Build Coastguard Worker ret void 11*9880d681SAndroid Build Coastguard Worker } 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker declare i64 @llvm.experimental.patchpoint.i64(i64, i32, i8*, i32, ...) 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker... 16*9880d681SAndroid Build Coastguard Worker--- 17*9880d681SAndroid Build Coastguard Workername: small_patchpoint_codegen 18*9880d681SAndroid Build Coastguard WorkertracksRegLiveness: true 19*9880d681SAndroid Build Coastguard Workerliveins: 20*9880d681SAndroid Build Coastguard Worker - { reg: '%rdi' } 21*9880d681SAndroid Build Coastguard Worker - { reg: '%rsi' } 22*9880d681SAndroid Build Coastguard WorkerframeInfo: 23*9880d681SAndroid Build Coastguard Worker hasPatchPoint: true 24*9880d681SAndroid Build Coastguard Worker stackSize: 8 25*9880d681SAndroid Build Coastguard Worker adjustsStack: true 26*9880d681SAndroid Build Coastguard Worker hasCalls: true 27*9880d681SAndroid Build Coastguard WorkerfixedStack: 28*9880d681SAndroid Build Coastguard Worker - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16 } 29*9880d681SAndroid Build Coastguard Workerbody: | 30*9880d681SAndroid Build Coastguard Worker bb.0.entry: 31*9880d681SAndroid Build Coastguard Worker liveins: %rdi, %rsi, %rbp 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker frame-setup PUSH64r killed %rbp, implicit-def %rsp, implicit %rsp 34*9880d681SAndroid Build Coastguard Worker CFI_INSTRUCTION .cfi_def_cfa_offset 16 35*9880d681SAndroid Build Coastguard Worker CFI_INSTRUCTION .cfi_offset %rbp, -16 36*9880d681SAndroid Build Coastguard Worker %rbp = frame-setup MOV64rr %rsp 37*9880d681SAndroid Build Coastguard Worker CFI_INSTRUCTION .cfi_def_cfa_register %rbp 38*9880d681SAndroid Build Coastguard Worker ; CHECK: PATCHPOINT 5, 5, 0, 2, 0, %rdi, %rsi, csr_64, implicit-def dead early-clobber %r11, implicit-def %rsp, implicit-def dead %rax 39*9880d681SAndroid Build Coastguard Worker PATCHPOINT 5, 5, 0, 2, 0, %rdi, %rsi, csr_64, implicit-def dead early-clobber %r11, implicit-def %rsp, implicit-def dead %rax 40*9880d681SAndroid Build Coastguard Worker %rbp = POP64r implicit-def %rsp, implicit %rsp 41*9880d681SAndroid Build Coastguard Worker RETQ 42*9880d681SAndroid Build Coastguard Worker... 43