; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
; RUN: llc < %s | FileCheck %s

; Make sure there's no assertion from peephole-opt introducing illegal
; subregister index uses.

target triple = "thumbv7-unknown-linux-android29"

define void @_ZN11VersionEdit10DecodeFromEv(i1 %call4, ptr %__profc__ZN11VersionEdit10DecodeFromEv) nounwind {
; CHECK-LABEL: _ZN11VersionEdit10DecodeFromEv:
; CHECK:       @ %bb.0: @ %land.rhs.lr.ph
; CHECK-NEXT:    lsls r0, r0, #31
; CHECK-NEXT:    beq .LBB0_2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:    adr r0, .LCPI0_0
; CHECK-NEXT:    vld1.64 {d0, d1}, [r0:128]
; CHECK-NEXT:    b .LBB0_3
; CHECK-NEXT:  .LBB0_2: @ %select.false
; CHECK-NEXT:    vmov.i32 q0, #0x0
; CHECK-NEXT:  .LBB0_3: @ %select.end
; CHECK-NEXT:    vldr s5, .LCPI0_1
; CHECK-NEXT:    vldr s4, .LCPI0_2
; CHECK-NEXT:    vmov.f32 s6, s0
; CHECK-NEXT:    vmov.f32 s7, s1
; CHECK-NEXT:    vst1.64 {d2, d3}, [r1]
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 4
; CHECK-NEXT:  @ %bb.4:
; CHECK-NEXT:  .LCPI0_0:
; CHECK-NEXT:    .long 1 @ 0x1
; CHECK-NEXT:    .long 0 @ 0x0
; CHECK-NEXT:    .long 1 @ 0x1
; CHECK-NEXT:    .long 0 @ 0x0
; CHECK-NEXT:  .LCPI0_1:
; CHECK-NEXT:    .long 0x00000000 @ float 0
; CHECK-NEXT:  .LCPI0_2:
; CHECK-NEXT:    .long 0x00000001 @ float 1.40129846E-45
land.rhs.lr.ph:
  br i1 %call4, label %sw.bb, label %while.cond.while.end_crit_edge.split.loop.exit43

while.cond.while.end_crit_edge.split.loop.exit43: ; preds = %land.rhs.lr.ph
  %ext0 = extractelement <4 x i64> zeroinitializer, i64 0
  br label %while.cond.while.end_crit_edge

while.cond.while.end_crit_edge:                   ; preds = %sw.bb, %while.cond.while.end_crit_edge.split.loop.exit43
  %pgocount5374.ph = phi i64 [ %ext1, %sw.bb ], [ %ext0, %while.cond.while.end_crit_edge.split.loop.exit43 ]
  %ins = insertelement <2 x i64> splat (i64 1), i64 %pgocount5374.ph, i64 1
  store <2 x i64> %ins, ptr %__profc__ZN11VersionEdit10DecodeFromEv, align 8
  ret void

sw.bb:                                            ; preds = %land.rhs.lr.ph
  %ext1 = extractelement <4 x i64> splat (i64 1), i64 0
  br label %while.cond.while.end_crit_edge
}

