| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6 | |
| # RUN: llc -mtriple=x86_64 -run-pass=prolog-epilog -o - %s | FileCheck %s | |
| --- | | |
| target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" | |
| target triple = "x86_64-unknown-linux-gnu" | |
| define void @_Z4ellai(i32 noundef %x) #0 { | |
| entry: | |
| ret void | |
| } | |
| declare void @_ZN3mooC1Ei(ptr, i32) | |
| attributes #0 = { minsize optsize uwtable "probe-stack"="inline-asm" } | |
| !llvm.module.flags = !{!0} | |
| !0 = !{i32 4, !"probe-stack", !"inline-asm"} | |
| ... | |
| --- | |
| name: _Z4ellai | |
| tracksRegLiveness: true | |
| liveins: | |
| - { reg: '$edi' } | |
| frameInfo: | |
| maxAlignment: 4096 | |
| adjustsStack: true | |
| hasCalls: true | |
| stack: | |
| - { id: 0, size: 4, alignment: 4096 } | |
| - { id: 1, size: 1, alignment: 1 } | |
| body: | | |
| bb.0.entry: | |
| liveins: $edi | |
| ; CHECK-LABEL: name: _Z4ellai | |
| ; CHECK: .0.entry: | |
| ; CHECK: $rsp = frame-setup SUB64ri32 $rsp, 4096, implicit-def dead $eflags | |
| ; CHECK-NEXT: frame-setup MOV64mi32 $rsp, 1, $noreg, 0, $noreg, 0 | |
| ; CHECK-NEXT: $rsp = frame-setup SUB64ri32 $rsp, 4096, implicit-def dead $eflags | |
| ; CHECK-NEXT: frame-setup MOV64mi32 $rsp, 1, $noreg, 0, $noreg, 0 | |
| renamable $esi = COPY $edi | |
| MOV32mi %stack.0, 1, $noreg, 0, $noreg, 0 :: (volatile store (s32), align 4096) | |
| ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp | |
| renamable $rdi = LEA64r %stack.1, 1, $noreg, 0, $noreg | |
| CALL64pcrel32 target-flags(x86-plt) @_ZN3mooC1Ei, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit $esi, implicit-def $rsp, implicit-def $ssp | |
| ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp | |
| RET 0 | |
| ... |