1# RUN: llc -mtriple=arm-eabi -run-pass=arm-cp-islands %s -o - | FileCheck %s 2--- | 3 target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" 4 target triple = "thumbv8.2a-arm-none-eabi" 5 6 define hidden i32 @main() { 7 entry: 8 %P5 = alloca half, align 2 9 store half 0xH3FE0, half* %P5, align 2 10 %0 = load half, half* %P5, align 2 11 call void @z_bar(half %0) 12 ret i32 0 13 } 14 15 declare dso_local void @z_bar(half) 16 17... 18--- 19name: main 20alignment: 2 21tracksRegLiveness: true 22frameInfo: 23 stackSize: 16 24 maxAlignment: 4 25 adjustsStack: true 26 hasCalls: true 27 maxCallFrameSize: 0 28 localFrameSize: 2 29stack: 30 - { id: 0, name: P5, offset: -10, size: 2, alignment: 2, local-offset: -2 } 31 - { id: 1, type: spill-slot, offset: -4, size: 4, alignment: 4, callee-saved-register: '$lr', 32 callee-saved-restored: false } 33 - { id: 2, type: spill-slot, offset: -8, size: 4, alignment: 4, callee-saved-register: '$r7' } 34constants: 35 - id: 0 36 value: half 0xH3FE0 37 alignment: 2 38machineFunctionInfo: {} 39body: | 40 bb.0.entry: 41 liveins: $r7, $lr 42 43 frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp 44 frame-setup CFI_INSTRUCTION def_cfa_offset 8 45 frame-setup CFI_INSTRUCTION offset $lr, -4 46 frame-setup CFI_INSTRUCTION offset $r7, -8 47 $sp = frame-setup tSUBspi $sp, 2, 14 /* CC::al */, $noreg 48 frame-setup CFI_INSTRUCTION def_cfa_offset 16 49 renamable $s0 = VLDRH %const.0, 0, 14, $noreg :: (load 2 from constant-pool) 50 VSTRH killed renamable $s0, $sp, 3, 14, $noreg :: (store 2 into %ir.P5) 51 renamable $r0 = t2LDRHi12 $sp, 6, 14 /* CC::al */, $noreg :: (dereferenceable load 2 from %ir.P5) 52 tBL 14 /* CC::al */, $noreg, @z_bar, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $r0, implicit-def $sp 53 renamable $r0, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg 54 $sp = frame-destroy tADDspi $sp, 2, 14 /* CC::al */, $noreg 55 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit killed $r0 56 57 ; CHECK: name: main 58 ; CHECK-NEXT: alignment: 4 59... 60