# RUN: llc -mtriple=hexagon -run-pass=hexagon-widen-stores -verify-machineinstrs %s -o - | FileCheck %s # Test that store widening correctly handles DoubleRegs operands with subreg # in S2_addasl_rrri instruction. The widening pass should preserve the subreg # when creating the widened S4_storerd_rr instruction. --- | define void @test_store_widen_subreg(ptr %base, i64 %idx, i32 %val) { entry: ret void } ... --- name: test_store_widen_subreg tracksRegLiveness: true body: | ; CHECK-LABEL: name: test_store_widen_subreg ; CHECK: S2_addasl_rrri %{{[0-9]+}}, %{{[0-9]+}}.isub_lo, 2 ; CHECK: S4_storerd_rr %{{[0-9]+}}, %{{[0-9]+}}.isub_lo, 2, %{{[0-9]+}} :: (store (s64), align 64) bb.0: liveins: $r0, $d1, $r4 %0:intregs = COPY $r4 %1:doubleregs = COPY $d1 %2:intregs = COPY $r0 %3:intregs = A2_addi %2, 384 %4:intregs = S2_addasl_rrri %3, %1.isub_lo, 2 bb.1: successors: %bb.1(0x80000000) S2_storeri_io %4, 0, %0 :: (store (s32), align 64) S2_storeri_io %4, 4, %0 :: (store (s32)) J2_jump %bb.1, implicit-def dead $pc