|
| 1 | +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6 |
| 2 | +; RUN: llc < %s | FileCheck %s |
| 3 | + |
| 4 | +; Make sure there's no assertion from peephole-opt introducing illegal |
| 5 | +; subregister index uses. |
| 6 | + |
| 7 | +target triple = "thumbv7-unknown-linux-android29" |
| 8 | + |
| 9 | +define void @_ZN11VersionEdit10DecodeFromEv(i1 %call4, ptr %__profc__ZN11VersionEdit10DecodeFromEv) nounwind { |
| 10 | +; CHECK-LABEL: _ZN11VersionEdit10DecodeFromEv: |
| 11 | +; CHECK: @ %bb.0: @ %land.rhs.lr.ph |
| 12 | +; CHECK-NEXT: lsls r0, r0, #31 |
| 13 | +; CHECK-NEXT: beq .LBB0_2 |
| 14 | +; CHECK-NEXT: @ %bb.1: |
| 15 | +; CHECK-NEXT: adr r0, .LCPI0_0 |
| 16 | +; CHECK-NEXT: vld1.64 {d0, d1}, [r0:128] |
| 17 | +; CHECK-NEXT: b .LBB0_3 |
| 18 | +; CHECK-NEXT: .LBB0_2: @ %select.false |
| 19 | +; CHECK-NEXT: vmov.i32 q0, #0x0 |
| 20 | +; CHECK-NEXT: .LBB0_3: @ %select.end |
| 21 | +; CHECK-NEXT: vldr s5, .LCPI0_1 |
| 22 | +; CHECK-NEXT: vldr s4, .LCPI0_2 |
| 23 | +; CHECK-NEXT: vmov.f32 s6, s0 |
| 24 | +; CHECK-NEXT: vmov.f32 s7, s1 |
| 25 | +; CHECK-NEXT: vst1.64 {d2, d3}, [r1] |
| 26 | +; CHECK-NEXT: bx lr |
| 27 | +; CHECK-NEXT: .p2align 4 |
| 28 | +; CHECK-NEXT: @ %bb.4: |
| 29 | +; CHECK-NEXT: .LCPI0_0: |
| 30 | +; CHECK-NEXT: .long 1 @ 0x1 |
| 31 | +; CHECK-NEXT: .long 0 @ 0x0 |
| 32 | +; CHECK-NEXT: .long 1 @ 0x1 |
| 33 | +; CHECK-NEXT: .long 0 @ 0x0 |
| 34 | +; CHECK-NEXT: .LCPI0_1: |
| 35 | +; CHECK-NEXT: .long 0x00000000 @ float 0 |
| 36 | +; CHECK-NEXT: .LCPI0_2: |
| 37 | +; CHECK-NEXT: .long 0x00000001 @ float 1.40129846E-45 |
| 38 | +land.rhs.lr.ph: |
| 39 | + br i1 %call4, label %sw.bb, label %while.cond.while.end_crit_edge.split.loop.exit43 |
| 40 | + |
| 41 | +while.cond.while.end_crit_edge.split.loop.exit43: ; preds = %land.rhs.lr.ph |
| 42 | + %ext0 = extractelement <4 x i64> zeroinitializer, i64 0 |
| 43 | + br label %while.cond.while.end_crit_edge |
| 44 | + |
| 45 | +while.cond.while.end_crit_edge: ; preds = %sw.bb, %while.cond.while.end_crit_edge.split.loop.exit43 |
| 46 | + %pgocount5374.ph = phi i64 [ %ext1, %sw.bb ], [ %ext0, %while.cond.while.end_crit_edge.split.loop.exit43 ] |
| 47 | + %ins = insertelement <2 x i64> splat (i64 1), i64 %pgocount5374.ph, i64 1 |
| 48 | + store <2 x i64> %ins, ptr %__profc__ZN11VersionEdit10DecodeFromEv, align 8 |
| 49 | + ret void |
| 50 | + |
| 51 | +sw.bb: ; preds = %land.rhs.lr.ph |
| 52 | + %ext1 = extractelement <4 x i64> splat (i64 1), i64 0 |
| 53 | + br label %while.cond.while.end_crit_edge |
| 54 | +} |
| 55 | + |
0 commit comments