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