aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/AMDGPU/misaligned-vgpr-regsequence.mir
blob: 26a6cc41ad8fa2b28fa004307685f9bd41553850 (plain)
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
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -start-after=si-load-store-opt %s -o - | FileCheck %s

# CHECK: misaligned_regsequence:
# CHECK: ; %bb.0:
# CHECK:         s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# CHECK:         s_load_dwordx2 s[0:1], s[4:5], 0x0
# CHECK:         v_mov_b32_e32 v5, 0
# CHECK:         v_mov_b32_e32 v4, 0
# CHECK:         v_mov_b32_e32 v6, 0
# CHECK:         s_waitcnt lgkmcnt(0)
# CHECK:         v_mov_b64_e32 v[2:3], s[0:1]
# CHECK:         flat_store_dwordx3 v[2:3], v[4:6]
# CHECK:         s_endpgm

---
name: misaligned_regsequence
tracksRegLiveness: true
body:             |
  bb.0:
    liveins: $sgpr4_sgpr5

    %0:sgpr_64 = COPY $sgpr4_sgpr5
    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 0, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4)
    %2:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
    %3:vreg_64_align2 = COPY %1
    %4:vreg_64_align2 = V_MOV_B64_PSEUDO 0, implicit $exec
    %5:vreg_96_align2 = REG_SEQUENCE killed %2, %subreg.sub0, killed %4, %subreg.sub1_sub2
    FLAT_STORE_DWORDX3 %3, killed %5, 0, 0, implicit $exec, implicit $flat_scr :: (store (s96), align 4)
    S_ENDPGM 0
...