# RUN: not llc -march=amdgcn -mcpu=gfx803 -run-pass si-memory-legalizer %s -o - 2>&1 | FileCheck -check-prefix=GCN %s

---

# GCN: error: <unknown>:0:0: in function invalid_load void (): Unsupported atomic address space

name:            invalid_load
body:             |
  bb.0:
    liveins: $sgpr0_sgpr1

    $vgpr0 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $sgpr2_sgpr3
    $vgpr1 = V_MOV_B32_e32 killed $sgpr3, implicit $exec, implicit $sgpr2_sgpr3, implicit $exec
    renamable $vgpr2 = FLAT_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load syncscope("one-as") seq_cst (s32) from `i32 addrspace(42)* undef`)
    $vgpr0 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $sgpr0_sgpr1
    $vgpr1 = V_MOV_B32_e32 killed $sgpr1, implicit $exec, implicit $sgpr0_sgpr1, implicit $exec
    FLAT_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into `i32* undef`)
    S_ENDPGM 0

...
---

# GCN: error: <unknown>:0:0: in function invalid_store void (): Unsupported atomic address space

name:            invalid_store
body:             |
  bb.0:
    liveins: $sgpr0_sgpr1

    $vgpr2 = V_MOV_B32_e32 killed $sgpr2, implicit $exec, implicit $exec
    $vgpr0 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $sgpr0_sgpr1
    $vgpr1 = V_MOV_B32_e32 killed $sgpr1, implicit $exec, implicit $sgpr0_sgpr1, implicit $exec
    FLAT_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr2, 0, 0, implicit $exec, implicit $flat_scr :: (volatile store syncscope("agent-one-as") seq_cst (s32) into `i32 addrspace(42)* undef`)
    S_ENDPGM 0

...
---

# GCN: error: <unknown>:0:0: in function invalid_cmpxchg void (): Unsupported atomic address space

name:            invalid_cmpxchg
body:             |
  bb.0:
    liveins: $sgpr0_sgpr1

    $vgpr3 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit-def $vgpr2_vgpr3, implicit $sgpr0_sgpr1
    $vgpr0 = V_MOV_B32_e32 killed $sgpr4, implicit $exec, implicit $exec
    $vgpr1 = V_MOV_B32_e32 killed $sgpr5, implicit $exec, implicit $exec
    $vgpr2 = V_MOV_B32_e32 killed $sgpr0, implicit $exec, implicit $sgpr0_sgpr1, implicit $exec
    FLAT_ATOMIC_CMPSWAP killed renamable $vgpr2_vgpr3, killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store syncscope("workgroup-one-as") seq_cst seq_cst (s32) on `i32 addrspace(42)* undef`)
    S_ENDPGM 0

...
---

# GCN: error: <unknown>:0:0: in function invalid_rmw void (): Unsupported atomic address space

name:            invalid_rmw
body:             |
  bb.0:
    liveins: $sgpr0_sgpr1

    $vgpr0 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $sgpr2_sgpr3
    $vgpr1 = V_MOV_B32_e32 killed $sgpr3, implicit $exec, implicit $sgpr2_sgpr3, implicit $exec
    $vgpr2 = V_MOV_B32_e32 killed $sgpr0, implicit $exec, implicit $exec
    FLAT_ATOMIC_SWAP killed renamable $vgpr0_vgpr1, killed renamable $vgpr2, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store syncscope("wavefront-one-as") seq_cst (s32) on `i32 addrspace(42)* undef`)
    S_ENDPGM 0

...
