# RUN: llc -march=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=GCN
# RUN: llc -march=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=GCN

# REQUIRES: global-isel

--- |
  define amdgpu_kernel void @global_addrspace(i32 addrspace(1)* %global0,
                                              i64 addrspace(1)* %global1,
                                              i96 addrspace(1)* %global2,
                                              i128 addrspace(1)* %global3) { ret void }
...
---

name:            global_addrspace
legalized:       true
regBankSelected: true

# GCN: global_addrspace
# GCN: [[PTR:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
# GCN: [[VAL4:%[0-9]+]]:vgpr_32 = COPY $vgpr2
# GCN: [[VAL8:%[0-9]+]]:vreg_64 = COPY $vgpr3_vgpr4
# GCN: [[VAL12:%[0-9]+]]:vreg_96 = COPY $vgpr5_vgpr6_vgpr7
# GCN: [[VAL16:%[0-9]+]]:vreg_128 = COPY $vgpr8_vgpr9_vgpr10_vgpr11
# GCN: FLAT_STORE_DWORD [[PTR]], [[VAL4]], 0, 0, 0
# GCN: FLAT_STORE_DWORDX2 [[PTR]], [[VAL8]], 0, 0, 0
# GCN: FLAT_STORE_DWORDX3 [[PTR]], [[VAL12]], 0, 0, 0
# GCN: FLAT_STORE_DWORDX4 [[PTR]], [[VAL16]], 0, 0, 0

body: |
  bb.0:
    liveins:  $vgpr0_vgpr1, $vgpr2, $vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11

    %0:vgpr(p1) = COPY $vgpr0_vgpr1
    %1:vgpr(s32) = COPY $vgpr2
    %2:vgpr(s64) = COPY $vgpr3_vgpr4
    %3:vgpr(s96) = COPY $vgpr5_vgpr6_vgpr7
    %4:vgpr(s128) = COPY $vgpr8_vgpr9_vgpr10_vgpr11
    G_STORE %1, %0 :: (store 4 into %ir.global0)
    G_STORE %2, %0 :: (store 8 into %ir.global1)
    G_STORE %3, %0 :: (store 12 into %ir.global2, align 16)
    G_STORE %4, %0 :: (store 16 into %ir.global3)

...
---
