1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -o - %s -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve.fp -run-pass=stack-protector -run-pass=prologepilog | FileCheck %s 3--- 4name: func0 5tracksRegLiveness: true 6stack: 7 - { id: 0, name: '', type: default, offset: 0, size: 16, alignment: 4, 8 stack-id: default, callee-saved-register: '', callee-saved-restored: true, 9 local-offset: -16, debug-info-variable: '', debug-info-expression: '', 10 debug-info-location: '' } 11body: | 12 bb.0: 13 ; CHECK-LABEL: name: func0 14 ; CHECK: liveins: $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $lr 15 ; CHECK: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $r7, killed $r8, killed $r9, killed $r10, killed $r11, killed $lr 16 ; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 36 17 ; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -4 18 ; CHECK: frame-setup CFI_INSTRUCTION offset $r11, -8 19 ; CHECK: frame-setup CFI_INSTRUCTION offset $r10, -12 20 ; CHECK: frame-setup CFI_INSTRUCTION offset $r9, -16 21 ; CHECK: frame-setup CFI_INSTRUCTION offset $r8, -20 22 ; CHECK: frame-setup CFI_INSTRUCTION offset $r7, -24 23 ; CHECK: frame-setup CFI_INSTRUCTION offset $r6, -28 24 ; CHECK: frame-setup CFI_INSTRUCTION offset $r5, -32 25 ; CHECK: frame-setup CFI_INSTRUCTION offset $r4, -36 26 ; CHECK: $sp = frame-setup tSUBspi $sp, 5, 14 /* CC::al */, $noreg 27 ; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 56 28 ; CHECK: $r0 = IMPLICIT_DEF 29 ; CHECK: $r1 = IMPLICIT_DEF 30 ; CHECK: $r2 = IMPLICIT_DEF 31 ; CHECK: $r3 = IMPLICIT_DEF 32 ; CHECK: $r4 = IMPLICIT_DEF 33 ; CHECK: $r5 = IMPLICIT_DEF 34 ; CHECK: $r6 = IMPLICIT_DEF 35 ; CHECK: $r7 = IMPLICIT_DEF 36 ; CHECK: $r8 = IMPLICIT_DEF 37 ; CHECK: $r9 = IMPLICIT_DEF 38 ; CHECK: $r10 = IMPLICIT_DEF 39 ; CHECK: $r11 = IMPLICIT_DEF 40 ; CHECK: $r12 = IMPLICIT_DEF 41 ; CHECK: $lr = IMPLICIT_DEF 42 ; CHECK: t2STRi12 killed $r0, $sp, 0, 14 /* CC::al */, $noreg :: (store (s32) into %stack.1) 43 ; CHECK: $r0 = tMOVr killed $sp, 14 /* CC::al */, $noreg 44 ; CHECK: renamable $q2 = MVE_VLDRBU32 killed $r0, 16, 0, $noreg, $noreg :: (load (s32) from %stack.0 + 12) 45 ; CHECK: $r0 = t2LDRi12 $sp, 0, 14 /* CC::al */, $noreg :: (load (s32) from %stack.1) 46 ; CHECK: KILL $r0 47 ; CHECK: KILL $r1 48 ; CHECK: KILL $r2 49 ; CHECK: KILL $r3 50 ; CHECK: KILL $r4 51 ; CHECK: KILL $r5 52 ; CHECK: KILL $r6 53 ; CHECK: KILL $r7 54 ; CHECK: KILL $r8 55 ; CHECK: KILL $r9 56 ; CHECK: KILL $r10 57 ; CHECK: KILL $r11 58 ; CHECK: KILL $r12 59 ; CHECK: KILL $lr 60 $r0 = IMPLICIT_DEF 61 $r1 = IMPLICIT_DEF 62 $r2 = IMPLICIT_DEF 63 $r3 = IMPLICIT_DEF 64 $r4 = IMPLICIT_DEF 65 $r5 = IMPLICIT_DEF 66 $r6 = IMPLICIT_DEF 67 $r7 = IMPLICIT_DEF 68 $r8 = IMPLICIT_DEF 69 $r9 = IMPLICIT_DEF 70 $r10 = IMPLICIT_DEF 71 $r11 = IMPLICIT_DEF 72 $r12 = IMPLICIT_DEF 73 $lr = IMPLICIT_DEF 74 75 renamable $q2 = MVE_VLDRBU32 %stack.0, 12, 0, $noreg, $noreg :: (load (s32) from %stack.0 + 12) 76 77 KILL $r0 78 KILL $r1 79 KILL $r2 80 KILL $r3 81 KILL $r4 82 KILL $r5 83 KILL $r6 84 KILL $r7 85 KILL $r8 86 KILL $r9 87 KILL $r10 88 KILL $r11 89 KILL $r12 90 KILL $lr 91... 92--- 93name: func1 94tracksRegLiveness: true 95stack: 96 - { id: 0, name: '', type: default, offset: 0, size: 16, alignment: 4, 97 stack-id: default, callee-saved-register: '', callee-saved-restored: true, 98 local-offset: -1200, debug-info-variable: '', debug-info-expression: '', 99 debug-info-location: '' } 100 - { id: 1, name: '', type: default, offset: 0, size: 1200, alignment: 4, 101 stack-id: default, callee-saved-register: '', callee-saved-restored: true, 102 local-offset: -1200, debug-info-variable: '', debug-info-expression: '', 103 debug-info-location: '' } 104body: | 105 bb.0: 106 ; CHECK-LABEL: name: func1 107 ; CHECK: liveins: $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $lr 108 ; CHECK: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $r7, killed $r8, killed $r9, killed $r10, killed $r11, killed $lr 109 ; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 36 110 ; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -4 111 ; CHECK: frame-setup CFI_INSTRUCTION offset $r11, -8 112 ; CHECK: frame-setup CFI_INSTRUCTION offset $r10, -12 113 ; CHECK: frame-setup CFI_INSTRUCTION offset $r9, -16 114 ; CHECK: frame-setup CFI_INSTRUCTION offset $r8, -20 115 ; CHECK: frame-setup CFI_INSTRUCTION offset $r7, -24 116 ; CHECK: frame-setup CFI_INSTRUCTION offset $r6, -28 117 ; CHECK: frame-setup CFI_INSTRUCTION offset $r5, -32 118 ; CHECK: frame-setup CFI_INSTRUCTION offset $r4, -36 119 ; CHECK: $sp = frame-setup t2SUBspImm12 killed $sp, 1220, 14 /* CC::al */, $noreg 120 ; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 1256 121 ; CHECK: $r0 = IMPLICIT_DEF 122 ; CHECK: $r1 = IMPLICIT_DEF 123 ; CHECK: $r2 = IMPLICIT_DEF 124 ; CHECK: $r3 = IMPLICIT_DEF 125 ; CHECK: $r4 = IMPLICIT_DEF 126 ; CHECK: $r5 = IMPLICIT_DEF 127 ; CHECK: $r6 = IMPLICIT_DEF 128 ; CHECK: $r7 = IMPLICIT_DEF 129 ; CHECK: $r8 = IMPLICIT_DEF 130 ; CHECK: $r9 = IMPLICIT_DEF 131 ; CHECK: $r10 = IMPLICIT_DEF 132 ; CHECK: $r11 = IMPLICIT_DEF 133 ; CHECK: $r12 = IMPLICIT_DEF 134 ; CHECK: $lr = IMPLICIT_DEF 135 ; CHECK: t2STRi12 killed $r0, $sp, 0, 14 /* CC::al */, $noreg :: (store (s32) into %stack.2) 136 ; CHECK: $r0 = t2ADDri killed $sp, 1152, 14 /* CC::al */, $noreg, $noreg 137 ; CHECK: renamable $q2 = MVE_VLDRBU8 killed $r0, 52, 0, $noreg, $noreg :: (load (s32) from %stack.0) 138 ; CHECK: $r0 = t2LDRi12 $sp, 0, 14 /* CC::al */, $noreg :: (load (s32) from %stack.2) 139 ; CHECK: KILL $r0 140 ; CHECK: KILL $r1 141 ; CHECK: KILL $r2 142 ; CHECK: KILL $r3 143 ; CHECK: KILL $r4 144 ; CHECK: KILL $r5 145 ; CHECK: KILL $r6 146 ; CHECK: KILL $r7 147 ; CHECK: KILL $r8 148 ; CHECK: KILL $r9 149 ; CHECK: KILL $r10 150 ; CHECK: KILL $r11 151 ; CHECK: KILL $r12 152 ; CHECK: KILL $lr 153 $r0 = IMPLICIT_DEF 154 $r1 = IMPLICIT_DEF 155 $r2 = IMPLICIT_DEF 156 $r3 = IMPLICIT_DEF 157 $r4 = IMPLICIT_DEF 158 $r5 = IMPLICIT_DEF 159 $r6 = IMPLICIT_DEF 160 $r7 = IMPLICIT_DEF 161 $r8 = IMPLICIT_DEF 162 $r9 = IMPLICIT_DEF 163 $r10 = IMPLICIT_DEF 164 $r11 = IMPLICIT_DEF 165 $r12 = IMPLICIT_DEF 166 $lr = IMPLICIT_DEF 167 168 renamable $q2 = MVE_VLDRBU8 %stack.0, 0, 0, $noreg, $noreg :: (load (s32) from %stack.0) 169 170 KILL $r0 171 KILL $r1 172 KILL $r2 173 KILL $r3 174 KILL $r4 175 KILL $r5 176 KILL $r6 177 KILL $r7 178 KILL $r8 179 KILL $r9 180 KILL $r10 181 KILL $r11 182 KILL $r12 183 KILL $lr 184... 185