brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · ae1addc Raw
86 lines · plain
1# RUN: llc -start-before=aarch64-ldst-opt -o - %s | FileCheck %s2# CHECK-NOT: stp     xzr, xzr, [sp], #163# CHECK:     add     sp, sp, #164--- |5  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"6  target triple = "aarch64"7 8  define hidden i32 @foo(i32 %0) {9    %2 = alloca [4 x i32], align 410    %3 = bitcast ptr %2 to ptr11    call void @llvm.memset.p0.i64(ptr nonnull align 4 dereferenceable(16) %3, i8 0, i64 16, i1 false)12    %4 = sext i32 %0 to i6413    %5 = getelementptr inbounds [4 x i32], ptr %2, i64 0, i64 %414    %6 = load i32, ptr %5, align 415    ret i32 %616  }17 18  declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #219  declare void @llvm.stackprotector(ptr, ptr) #320 21  !llvm.module.flags = !{!0}22  !llvm.ident = !{!1}23 24  !0 = !{i32 1, !"wchar_size", i32 4}25  !1 = !{!"clang version 11.0.0 "}26  !2 = !{!3, !3, i64 0}27  !3 = !{!"int", !4, i64 0}28  !4 = !{!"omnipotent char", !5, i64 0}29  !5 = !{!"Simple C++ TBAA"}30 31...32---33name:            foo34alignment:       835exposesReturnsTwice: false36legalized:       false37regBankSelected: false38selected:        false39failedISel:      false40tracksRegLiveness: true41hasWinCFI:       false42registers:       []43liveins:44  - { reg: '$w0', virtual-reg: '' }45frameInfo:46  isFrameAddressTaken: false47  isReturnAddressTaken: false48  hasStackMap:     false49  hasPatchPoint:   false50  stackSize:       1651  offsetAdjustment: 052  maxAlignment:    853  adjustsStack:    false54  hasCalls:        false55  stackProtector:  ''56  maxCallFrameSize: 057  cvBytesOfCalleeSavedRegisters: 058  hasOpaqueSPAdjustment: false59  hasVAStart:      false60  hasMustTailInVarArgFunc: false61  localFrameSize:  1662  savePoint:       []63  restorePoint:    []64fixedStack:      []65stack:66  - { id: 0, type: default, offset: -16, size: 16,67      alignment: 8, stack-id: default, callee-saved-register: '', callee-saved-restored: true, 68      local-offset: -16, debug-info-variable: '', debug-info-expression: '',69      debug-info-location: '' }70callSites:       []71constants:       []72machineFunctionInfo: {}73body:             |74  bb.0 (%ir-block.1):75    liveins: $w076 77    $sp = frame-setup SUBXri $sp, 16, 078    $x8 = ADDXri $sp, 0, 079    STRXui $xzr, $sp, 1 :: (store (s64) into %ir.3 + 8)80    STRXui $xzr, $sp, 0 :: (store (s64) into %ir.3)81    renamable $w0 = LDRWroW killed renamable $x8, killed renamable $w0, 1, 1 :: (load (s32) from %ir.5, !tbaa !2)82    $sp = frame-destroy ADDXri $sp, 16, 083    RET undef $lr, implicit $w084 85...86