brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 39bc411 Raw
107 lines · plain
1# RUN: llc -o - %s -mtriple=aarch64-windows -run-pass=aarch64-ldst-opt \2# RUN:   | FileCheck %s3 4# CHECK: $x0 = LDRXui $sp, 15# CHECK: $x19 = frame-destroy LDRXui $sp, 26 7--- |8  target triple = "aarch64-pc-windows-gnu"9  10  define dso_local noundef i64 @_Z1fPFvPxEx(ptr nocapture noundef readonly %g, i64 noundef %x) uwtable {11  entry:12    %x.addr = alloca i64, align 813    store i64 %x, ptr %x.addr, align 814    call void %g(ptr noundef nonnull %x.addr)15    call void asm sideeffect "", "~{x19}"()16    %0 = load i64, ptr %x.addr, align 817    ret i64 %018  }19...20---21name:            _Z1fPFvPxEx22alignment:       423exposesReturnsTwice: false24legalized:       false25regBankSelected: false26selected:        false27failedISel:      false28tracksRegLiveness: true29hasWinCFI:       true30callsEHReturn:   false31callsUnwindInit: false32hasEHContTarget: false33hasEHScopes:     false34hasEHFunclets:   false35failsVerification: false36tracksDebugUserValues: true37registers:       []38liveins:39  - { reg: '$x0', virtual-reg: '' }40  - { reg: '$x1', virtual-reg: '' }41frameInfo:42  isFrameAddressTaken: false43  isReturnAddressTaken: false44  hasStackMap:     false45  hasPatchPoint:   false46  stackSize:       3247  offsetAdjustment: 048  maxAlignment:    849  adjustsStack:    true50  hasCalls:        true51  stackProtector:  ''52  functionContext: ''53  maxCallFrameSize: 054  cvBytesOfCalleeSavedRegisters: 055  hasOpaqueSPAdjustment: false56  hasVAStart:      false57  hasMustTailInVarArgFunc: false58  hasTailCall:     false59  localFrameSize:  860  savePoint:       []61  restorePoint:    []62fixedStack:      []63stack:64  - { id: 0, name: x.addr, type: default, offset: -24, size: 8, alignment: 8, 65      stack-id: default, callee-saved-register: '', callee-saved-restored: true, 66      local-offset: -8, debug-info-variable: '', debug-info-expression: '', 67      debug-info-location: '' }68  - { id: 1, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8, 69      stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true, 70      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }71  - { id: 2, name: '', type: spill-slot, offset: -16, size: 8, alignment: 8, 72      stack-id: default, callee-saved-register: '$x19', callee-saved-restored: true, 73      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }74callSites:       []75debugValueSubstitutions: []76constants:       []77machineFunctionInfo:78  hasRedZone:      false79body:             |80  bb.0.entry:81    liveins: $x0, $x1, $x19, $lr82  83    $sp = frame-setup SUBXri $sp, 32, 084    frame-setup SEH_StackAlloc 3285    frame-setup STRXui killed $x19, $sp, 2 :: (store (s64) into %stack.2)86    frame-setup SEH_SaveReg 19, 1687    frame-setup STRXui killed $lr, $sp, 3 :: (store (s64) into %stack.1)88    frame-setup SEH_SaveReg 30, 2489    frame-setup SEH_PrologEnd90    renamable $x8 = COPY $x091    STRXui killed renamable $x1, $sp, 1 :: (store (s64) into %ir.x.addr)92    $x0 = ADDXri $sp, 8, 093    BLR killed renamable $x8, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit $x0, implicit-def $sp94    INLINEASM &"", 1 /* sideeffect attdialect */, 12 /* clobber */, implicit-def dead early-clobber $x1995    renamable $x0 = LDRXui $sp, 1 :: (dereferenceable load (s64) from %ir.x.addr)96    frame-destroy SEH_EpilogStart97    $lr = frame-destroy LDRXui $sp, 3 :: (load (s64) from %stack.1)98    frame-destroy SEH_SaveReg 30, 2499    $x19 = frame-destroy LDRXui $sp, 2 :: (load (s64) from %stack.2)100    frame-destroy SEH_SaveReg 19, 16101    $sp = frame-destroy ADDXri $sp, 32, 0102    frame-destroy SEH_StackAlloc 32103    frame-destroy SEH_EpilogEnd104    RET_ReallyLR implicit $x0105 106...107