File: skip-vpt-debug.mir

package info (click to toggle)
llvm-toolchain-16 1%3A16.0.6-15~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,634,792 kB
  • sloc: cpp: 6,179,261; ansic: 1,216,205; asm: 741,319; python: 196,614; objc: 75,325; f90: 49,640; lisp: 32,396; pascal: 12,286; sh: 9,394; perl: 7,442; ml: 5,494; awk: 3,523; makefile: 2,723; javascript: 1,206; xml: 886; fortran: 581; cs: 573
file content (330 lines) | stat: -rw-r--r-- 19,053 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=thumbv8.1m.main -mattr=+mve -run-pass=arm-low-overhead-loops %s -o - --verify-machineinstrs | FileCheck %s
--- |
  ; ModuleID = 'skip-vpt-debug.ll'
  source_filename = "skip-vpt-debug.c"
  target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
  target triple = "thumbv8.1m.main-arm-none-eabihf"

  ; Function Attrs: nofree norecurse nounwind optsize
  define hidden void @arm_max_no_idx_f32(float* nocapture readonly %pSrc, i32 %blockSize, float* nocapture %pResult) local_unnamed_addr #0 !dbg !13 {
  entry:
    call void @llvm.dbg.value(metadata float* %pSrc, metadata !24, metadata !DIExpression()), !dbg !29
    call void @llvm.dbg.value(metadata i32 %blockSize, metadata !25, metadata !DIExpression()), !dbg !29
    call void @llvm.dbg.value(metadata float* %pResult, metadata !26, metadata !DIExpression()), !dbg !29
    call void @llvm.dbg.value(metadata float 0x3810000000000000, metadata !27, metadata !DIExpression()), !dbg !29
    %cmp.not7 = icmp eq i32 %blockSize, 0, !dbg !30
    br i1 %cmp.not7, label %while.end, label %vector.ph, !dbg !31

  vector.ph:                                        ; preds = %entry
    %n.rnd.up = add i32 %blockSize, 3, !dbg !31
    %n.vec = and i32 %n.rnd.up, -4, !dbg !31
    %0 = add i32 %n.vec, -4, !dbg !31
    %1 = lshr i32 %0, 2, !dbg !31
    %2 = add nuw nsw i32 %1, 1, !dbg !31
    %3 = call i32 @llvm.start.loop.iterations.i32(i32 %2), !dbg !31
    br label %vector.body, !dbg !31

  vector.body:                                      ; preds = %vector.body, %vector.ph
    %lsr.iv1 = phi float* [ %scevgep, %vector.body ], [ %pSrc, %vector.ph ]
    %vec.phi = phi <4 x float> [ <float 0x3810000000000000, float 0x3810000000000000, float 0x3810000000000000, float 0x3810000000000000>, %vector.ph ], [ %10, %vector.body ]
    %4 = phi i32 [ %3, %vector.ph ], [ %11, %vector.body ]
    %5 = phi i32 [ %blockSize, %vector.ph ], [ %7, %vector.body ]
    %lsr.iv12 = bitcast float* %lsr.iv1 to <4 x float>*
    %6 = call <4 x i1> @llvm.arm.mve.vctp32(i32 %5)
    %7 = sub i32 %5, 4
    %wide.masked.load = call <4 x float> @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %lsr.iv12, i32 4, <4 x i1> %6, <4 x float> poison), !dbg !32, !tbaa !34
    %8 = fcmp nnan ninf nsz olt <4 x float> %vec.phi, %wide.masked.load, !dbg !38
    %9 = and <4 x i1> %6, %8, !dbg !40
    %10 = select <4 x i1> %9, <4 x float> %wide.masked.load, <4 x float> %vec.phi, !dbg !40
    %scevgep = getelementptr float, float* %lsr.iv1, i32 4
    %11 = call i32 @llvm.loop.decrement.reg.i32(i32 %4, i32 1)
    %12 = icmp ne i32 %11, 0
    br i1 %12, label %vector.body, label %middle.block, !llvm.loop !41

  middle.block:                                     ; preds = %vector.body
    %13 = call nnan ninf nsz float @llvm.vector.reduce.fmax.v4f32(<4 x float> %10), !dbg !31
    br label %while.end, !dbg !45

  while.end:                                        ; preds = %middle.block, %entry
    %maxValue.0.lcssa = phi float [ 0x3810000000000000, %entry ], [ %13, %middle.block ], !dbg !29
    store float %maxValue.0.lcssa, float* %pResult, align 4, !dbg !45, !tbaa !34
    ret void, !dbg !46
  }

  ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
  declare void @llvm.dbg.value(metadata, metadata, metadata) #1

  ; Function Attrs: nofree nosync nounwind readnone willreturn
  declare <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32, i32) #2

  ; Function Attrs: argmemonly nofree nosync nounwind readonly willreturn
  declare <4 x float> @llvm.masked.load.v4f32.p0v4f32(<4 x float>*, i32 immarg, <4 x i1>, <4 x float>) #3

  ; Function Attrs: nofree nosync nounwind readnone willreturn
  declare float @llvm.vector.reduce.fmax.v4f32(<4 x float>) #2

  ; Function Attrs: noduplicate nofree nosync nounwind willreturn
  declare i32 @llvm.start.loop.iterations.i32(i32) #4

  ; Function Attrs: noduplicate nofree nosync nounwind willreturn
  declare i32 @llvm.loop.decrement.reg.i32(i32, i32) #4

  ; Function Attrs: nounwind readnone
  declare <4 x i1> @llvm.arm.mve.vctp32(i32) #5

  attributes #0 = { nofree norecurse nounwind optsize "denormal-fp-math"="preserve-sign,preserve-sign" "denormal-fp-math-f32"="ieee,ieee" "frame-pointer"="none" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="cortex-m55" "target-features"="+armv8.1-m.main,+dsp,+fp-armv8d16,+fp-armv8d16sp,+fp16,+fp64,+fullfp16,+hwdiv,+lob,+mve,+mve.fp,+ras,+thumb-mode,+vfp2,+vfp2sp,+vfp3d16,+vfp3d16sp,+vfp4d16,+vfp4d16sp,-aes,-bf16,-cdecp0,-cdecp1,-cdecp2,-cdecp3,-cdecp4,-cdecp5,-cdecp6,-cdecp7,-crc,-crypto,-dotprod,-fp16fml,-hwdiv-arm,-i8mm,-sb,-sha2" }
  attributes #1 = { nofree nosync nounwind readnone speculatable willreturn }
  attributes #2 = { nofree nosync nounwind readnone willreturn }
  attributes #3 = { argmemonly nofree nosync nounwind readonly willreturn }
  attributes #4 = { noduplicate nofree nosync nounwind willreturn }
  attributes #5 = { nounwind readnone }

  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!3, !4, !5, !6, !7, !8, !9, !10, !11}
  !llvm.ident = !{!12}

  !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "Component: ARM Compiler 6.17.0.0 (permissive) Tool: armclang [00000000]", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
  !1 = !DIFile(filename: "skip-vpt-debug.c", directory: "/home/vicspe01")
  !2 = !{}
  !3 = !{i32 7, !"Dwarf Version", i32 4}
  !4 = !{i32 2, !"Debug Info Version", i32 3}
  !5 = !{i32 1, !"wchar_size", i32 4}
  !6 = !{i32 1, !"static_rwdata", i32 1}
  !7 = !{i32 1, !"enumsize_buildattr", i32 2}
  !8 = !{i32 1, !"armlib_unavailable", i32 0}
  !9 = !{i32 8, !"branch-target-enforcement", i32 0}
  !10 = !{i32 8, !"sign-return-address", i32 0}
  !11 = !{i32 8, !"sign-return-address-all", i32 0}
  !12 = !{!"Component: ARM Compiler 6.17.0.0 (permissive) Tool: armclang [00000000]"}
  !13 = distinct !DISubprogram(name: "arm_max_no_idx_f32", scope: !1, file: !1, line: 5, type: !14, scopeLine: 6, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !23)
  !14 = !DISubroutineType(types: !15)
  !15 = !{null, !16, !20, !22}
  !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !17, size: 32)
  !17 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !18)
  !18 = !DIDerivedType(tag: DW_TAG_typedef, name: "float32_t", file: !1, line: 1, baseType: !19)
  !19 = !DIBasicType(name: "float", size: 32, encoding: DW_ATE_float)
  !20 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !1, line: 2, baseType: !21)
  !21 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
  !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 32)
  !23 = !{!24, !25, !26, !27, !28}
  !24 = !DILocalVariable(name: "pSrc", arg: 1, scope: !13, file: !1, line: 5, type: !16)
  !25 = !DILocalVariable(name: "blockSize", arg: 2, scope: !13, file: !1, line: 5, type: !20)
  !26 = !DILocalVariable(name: "pResult", arg: 3, scope: !13, file: !1, line: 6, type: !22)
  !27 = !DILocalVariable(name: "maxValue", scope: !13, file: !1, line: 7, type: !18)
  !28 = !DILocalVariable(name: "newVal", scope: !13, file: !1, line: 8, type: !18)
  !29 = !DILocation(line: 0, scope: !13)
  !30 = !DILocation(line: 10, column: 20, scope: !13)
  !31 = !DILocation(line: 10, column: 3, scope: !13)
  !32 = !DILocation(line: 11, column: 14, scope: !33)
  !33 = distinct !DILexicalBlock(scope: !13, file: !1, line: 10, column: 26)
  !34 = !{!35, !35, i64 0}
  !35 = !{!"float", !36, i64 0}
  !36 = !{!"omnipotent char", !37, i64 0}
  !37 = !{!"Simple C/C++ TBAA"}
  !38 = !DILocation(line: 12, column: 18, scope: !39)
  !39 = distinct !DILexicalBlock(scope: !33, file: !1, line: 12, column: 9)
  !40 = !DILocation(line: 12, column: 9, scope: !33)
  !41 = distinct !{!41, !31, !42, !43, !44}
  !42 = !DILocation(line: 15, column: 3, scope: !13)
  !43 = !{!"llvm.loop.mustprogress"}
  !44 = !{!"llvm.loop.isvectorized", i32 1}
  !45 = !DILocation(line: 16, column: 12, scope: !13)
  !46 = !DILocation(line: 17, column: 1, scope: !13)

...
---
name:            arm_max_no_idx_f32
alignment:       4
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
hasWinCFI:       false
registers:       []
liveins:
  - { reg: '$r0', virtual-reg: '' }
  - { reg: '$r1', virtual-reg: '' }
  - { reg: '$r2', virtual-reg: '' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       8
  offsetAdjustment: 0
  maxAlignment:    4
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 0
  cvBytesOfCalleeSavedRegisters: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:      []
stack:
  - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
      stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false,
      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
  - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
      stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,
      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
callSites:       []
debugValueSubstitutions: []
constants:
  - id:              0
    value:           float 0x3810000000000000
    alignment:       4
    isTargetSpecific: false
machineFunctionInfo: {}
body:             |
  ; CHECK-LABEL: name: arm_max_no_idx_f32
  ; CHECK: bb.0.entry:
  ; CHECK:   successors: %bb.4(0x30000000), %bb.1(0x50000000)
  ; CHECK:   liveins: $lr, $r0, $r1, $r2, $r7
  ; CHECK:   DBG_VALUE $r0, $noreg, !24, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r1, $noreg, !25, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r1, $noreg, !25, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
  ; CHECK:   frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp
  ; CHECK:   frame-setup CFI_INSTRUCTION def_cfa_offset 8
  ; CHECK:   frame-setup CFI_INSTRUCTION offset $lr, -4
  ; CHECK:   frame-setup CFI_INSTRUCTION offset $r7, -8
  ; CHECK:   DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r0, $noreg, !24, !DIExpression(), debug-location !29
  ; CHECK:   tCBZ renamable $r1, %bb.4, debug-location !31
  ; CHECK: bb.1.vector.ph:
  ; CHECK:   successors: %bb.2(0x80000000)
  ; CHECK:   liveins: $r0, $r1, $r2
  ; CHECK:   DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r1, $noreg, !25, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r0, $noreg, !24, !DIExpression(), debug-location !29
  ; CHECK:   renamable $q0 = MVE_VMOVimmi32 1152, 0, $noreg, $noreg, undef renamable $q0
  ; CHECK:   $lr = MVE_DLSTP_32 killed renamable $r1, debug-location !31
  ; CHECK: bb.2.vector.body (align 4):
  ; CHECK:   successors: %bb.2(0x7c000000), %bb.3(0x04000000)
  ; CHECK:   liveins: $lr, $q0, $r0, $r2
  ; CHECK:   DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
  ; CHECK:   renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 0, $noreg, $noreg, debug-location !32 :: (load (s128) from %ir.lsr.iv12, align 4, !tbaa !34)
  ; CHECK:   DBG_VALUE $r0, $noreg, !24, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !29
  ; CHECK:   MVE_VPTv4f32 8, renamable $q1, renamable $q0, 12, implicit-def $vpr, debug-location !40
  ; CHECK:   renamable $q0 = MVE_VORR killed renamable $q1, killed renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q0, debug-location !40
  ; CHECK:   DBG_VALUE $r1, $noreg, !25, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !29
  ; CHECK:   $lr = MVE_LETP killed renamable $lr, %bb.2
  ; CHECK: bb.3.middle.block:
  ; CHECK:   successors: %bb.5(0x80000000)
  ; CHECK:   liveins: $q0, $r2
  ; CHECK:   DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
  ; CHECK:   renamable $s4 = nnan ninf nsz VFP_VMAXNMS renamable $s2, renamable $s3, debug-location !31
  ; CHECK:   renamable $s0 = nnan ninf nsz VFP_VMAXNMS killed renamable $s0, killed renamable $s1, implicit killed $q0, debug-location !31
  ; CHECK:   renamable $s0 = nnan ninf nsz VFP_VMAXNMS killed renamable $s0, killed renamable $s4, debug-location !31
  ; CHECK:   tB %bb.5, 14 /* CC::al */, $noreg
  ; CHECK: bb.4:
  ; CHECK:   successors: %bb.5(0x80000000)
  ; CHECK:   liveins: $r2
  ; CHECK:   DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r1, $noreg, !25, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r0, $noreg, !24, !DIExpression(), debug-location !29
  ; CHECK:   renamable $s0 = VLDRS %const.0, 0, 14 /* CC::al */, $noreg :: (load (s32) from constant-pool)
  ; CHECK: bb.5.while.end:
  ; CHECK:   liveins: $r2, $s0
  ; CHECK:   DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
  ; CHECK:   DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
  ; CHECK:   VSTRS killed renamable $s0, killed renamable $r2, 0, 14 /* CC::al */, $noreg, debug-location !45 :: (store (s32) into %ir.pResult, !tbaa !34)
  ; CHECK:   frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, debug-location !46
  ; CHECK: bb.6 (align 4):
  ; CHECK:   CONSTPOOL_ENTRY 0, %const.0, 4
  bb.0.entry:
    successors: %bb.4(0x30000000), %bb.1(0x50000000)
    liveins: $r0, $r1, $r2, $r7, $lr

    DBG_VALUE $r0, $noreg, !24, !DIExpression(), debug-location !29
    DBG_VALUE $r1, $noreg, !25, !DIExpression(), debug-location !29
    DBG_VALUE $r1, $noreg, !25, !DIExpression(), debug-location !29
    DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
    DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
    frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp
    frame-setup CFI_INSTRUCTION def_cfa_offset 8
    frame-setup CFI_INSTRUCTION offset $lr, -4
    frame-setup CFI_INSTRUCTION offset $r7, -8
    DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
    DBG_VALUE $r0, $noreg, !24, !DIExpression(), debug-location !29
    tCBZ renamable $r1, %bb.4, debug-location !31

  bb.1.vector.ph:
    successors: %bb.2(0x80000000)
    liveins: $r0, $r1, $r2

    DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
    DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
    DBG_VALUE $r1, $noreg, !25, !DIExpression(), debug-location !29
    DBG_VALUE $r0, $noreg, !24, !DIExpression(), debug-location !29
    renamable $r3, dead $cpsr = tADDi3 renamable $r1, 3, 14 /* CC::al */, $noreg, debug-location !31
    renamable $r3 = t2BICri killed renamable $r3, 3, 14 /* CC::al */, $noreg, $noreg, debug-location !31
    renamable $r12 = t2SUBri killed renamable $r3, 4, 14 /* CC::al */, $noreg, $noreg, debug-location !31
    renamable $r3, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg
    renamable $r3 = nuw nsw t2ADDrs killed renamable $r3, killed renamable $r12, 19, 14 /* CC::al */, $noreg, $noreg, debug-location !31
    renamable $q0 = MVE_VMOVimmi32 1152, 0, $noreg, $noreg, undef renamable $q0
    renamable $lr = t2DoLoopStartTP killed renamable $r3, renamable $r1, debug-location !31

  bb.2.vector.body (align 4):
    successors: %bb.2(0x7c000000), %bb.3(0x04000000)
    liveins: $lr, $q0, $r0, $r1, $r2

    DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
    DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
    renamable $vpr = MVE_VCTP32 renamable $r1, 0, $noreg, $noreg
    MVE_VPST 2, implicit $vpr, debug-location !32
    renamable $r0, renamable $q1 = MVE_VLDRWU32_post killed renamable $r0, 16, 1, renamable $vpr, $noreg, debug-location !32 :: (load (s128) from %ir.lsr.iv12, align 4, !tbaa !34)
    DBG_VALUE $r0, $noreg, !24, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !29
    renamable $vpr = MVE_VCMPf32 renamable $q1, renamable $q0, 12, 1, killed renamable $vpr, $noreg, debug-location !40
    renamable $q0 = MVE_VORR killed renamable $q1, renamable $q1, 1, killed renamable $vpr, $noreg, killed renamable $q0, debug-location !40
    renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 4, 14 /* CC::al */, $noreg
    DBG_VALUE $r1, $noreg, !25, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !29
    renamable $lr = t2LoopEndDec killed renamable $lr, %bb.2, implicit-def dead $cpsr
    tB %bb.3, 14 /* CC::al */, $noreg

  bb.3.middle.block:
    successors: %bb.5(0x80000000)
    liveins: $q0, $r2

    DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
    DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
    renamable $s4 = nnan ninf nsz VFP_VMAXNMS renamable $s2, renamable $s3, debug-location !31
    renamable $s0 = nnan ninf nsz VFP_VMAXNMS killed renamable $s0, killed renamable $s1, implicit $q0, debug-location !31
    renamable $s0 = nnan ninf nsz VFP_VMAXNMS killed renamable $s0, killed renamable $s4, debug-location !31
    tB %bb.5, 14 /* CC::al */, $noreg

  bb.4:
    successors: %bb.5(0x80000000)
    liveins: $r2

    DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
    DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
    DBG_VALUE $r1, $noreg, !25, !DIExpression(), debug-location !29
    DBG_VALUE $r0, $noreg, !24, !DIExpression(), debug-location !29
    renamable $s0 = VLDRS %const.0, 0, 14 /* CC::al */, $noreg :: (load (s32) from constant-pool)

  bb.5.while.end:
    liveins: $r2, $s0

    DBG_VALUE float 0x3810000000000000, $noreg, !27, !DIExpression(), debug-location !29
    DBG_VALUE $r2, $noreg, !26, !DIExpression(), debug-location !29
    VSTRS killed renamable $s0, killed renamable $r2, 0, 14 /* CC::al */, $noreg, debug-location !45 :: (store (s32) into %ir.pResult, !tbaa !34)
    frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, debug-location !46

  bb.6 (align 4):
    CONSTPOOL_ENTRY 0, %const.0, 4

...