[AMDGPU][NFC] Replace gfx940 and gfx941 with gfx942 in llvm/test gfx940 and gfx941 are no longer supported. This is one of a series of PRs to remove them from the code base. This PR uses gfx942 instead of gfx940 and gfx941 in the test RUN-lines (unless there is already a RUN-line for gfx942). The only notable difference in the test output is that gfx942 does not force the use of sc0 and sc1 on stores while gfx940 and gfx941 do (cf. https://reviews.llvm.org/D149986). For SWDEV-512631
231 lines
9.0 KiB
LLVM
231 lines
9.0 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck %s --check-prefix=GFX900
|
|
; RUN: llc -mtriple=amdgcn -mcpu=gfx90a -verify-machineinstrs < %s | FileCheck %s --check-prefix=GFX90A
|
|
; RUN: llc -mtriple=amdgcn -mcpu=gfx942 -verify-machineinstrs < %s | FileCheck %s --check-prefix=GFX942
|
|
; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -verify-machineinstrs < %s | FileCheck %s --check-prefix=GFX10
|
|
; RUN: llc -global-isel -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck %s --check-prefix=GFX900-GISEL
|
|
|
|
declare void @llvm.amdgcn.global.load.lds(ptr addrspace(1) nocapture %gptr, ptr addrspace(3) nocapture %lptr, i32 %size, i32 %offset, i32 %aux)
|
|
|
|
define amdgpu_ps void @global_load_lds_dword_vaddr(ptr addrspace(1) nocapture %gptr, ptr addrspace(3) nocapture %lptr) {
|
|
; GFX900-LABEL: global_load_lds_dword_vaddr:
|
|
; GFX900: ; %bb.0: ; %main_body
|
|
; GFX900-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX900-NEXT: s_mov_b32 m0, s0
|
|
; GFX900-NEXT: s_nop 0
|
|
; GFX900-NEXT: global_load_dword v[0:1], off offset:16 glc lds
|
|
; GFX900-NEXT: s_endpgm
|
|
;
|
|
; GFX90A-LABEL: global_load_lds_dword_vaddr:
|
|
; GFX90A: ; %bb.0: ; %main_body
|
|
; GFX90A-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX90A-NEXT: s_mov_b32 m0, s0
|
|
; GFX90A-NEXT: s_nop 0
|
|
; GFX90A-NEXT: global_load_dword v[0:1], off offset:16 glc lds
|
|
; GFX90A-NEXT: s_endpgm
|
|
;
|
|
; GFX942-LABEL: global_load_lds_dword_vaddr:
|
|
; GFX942: ; %bb.0: ; %main_body
|
|
; GFX942-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX942-NEXT: s_mov_b32 m0, s0
|
|
; GFX942-NEXT: s_nop 0
|
|
; GFX942-NEXT: global_load_lds_dword v[0:1], off offset:16 sc0
|
|
; GFX942-NEXT: s_endpgm
|
|
;
|
|
; GFX10-LABEL: global_load_lds_dword_vaddr:
|
|
; GFX10: ; %bb.0: ; %main_body
|
|
; GFX10-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX10-NEXT: s_mov_b32 m0, s0
|
|
; GFX10-NEXT: global_load_dword v[0:1], off offset:16 glc lds
|
|
; GFX10-NEXT: s_endpgm
|
|
;
|
|
; GFX900-GISEL-LABEL: global_load_lds_dword_vaddr:
|
|
; GFX900-GISEL: ; %bb.0: ; %main_body
|
|
; GFX900-GISEL-NEXT: v_readfirstlane_b32 m0, v2
|
|
; GFX900-GISEL-NEXT: s_nop 4
|
|
; GFX900-GISEL-NEXT: global_load_dword v[0:1], off offset:16 glc lds
|
|
; GFX900-GISEL-NEXT: s_endpgm
|
|
main_body:
|
|
call void @llvm.amdgcn.global.load.lds(ptr addrspace(1) %gptr, ptr addrspace(3) %lptr, i32 4, i32 16, i32 1)
|
|
ret void
|
|
}
|
|
|
|
define amdgpu_ps void @global_load_lds_dword_saddr(ptr addrspace(1) nocapture inreg %gptr, ptr addrspace(3) nocapture %lptr) {
|
|
; GFX900-LABEL: global_load_lds_dword_saddr:
|
|
; GFX900: ; %bb.0: ; %main_body
|
|
; GFX900-NEXT: v_readfirstlane_b32 s2, v0
|
|
; GFX900-NEXT: v_mov_b32_e32 v1, 0
|
|
; GFX900-NEXT: s_mov_b32 m0, s2
|
|
; GFX900-NEXT: s_nop 0
|
|
; GFX900-NEXT: global_load_dword v1, s[0:1] offset:32 slc lds
|
|
; GFX900-NEXT: s_endpgm
|
|
;
|
|
; GFX90A-LABEL: global_load_lds_dword_saddr:
|
|
; GFX90A: ; %bb.0: ; %main_body
|
|
; GFX90A-NEXT: v_readfirstlane_b32 s2, v0
|
|
; GFX90A-NEXT: v_mov_b32_e32 v1, 0
|
|
; GFX90A-NEXT: s_mov_b32 m0, s2
|
|
; GFX90A-NEXT: s_nop 0
|
|
; GFX90A-NEXT: global_load_dword v1, s[0:1] offset:32 slc lds
|
|
; GFX90A-NEXT: s_endpgm
|
|
;
|
|
; GFX942-LABEL: global_load_lds_dword_saddr:
|
|
; GFX942: ; %bb.0: ; %main_body
|
|
; GFX942-NEXT: v_readfirstlane_b32 s2, v0
|
|
; GFX942-NEXT: v_mov_b32_e32 v1, 0
|
|
; GFX942-NEXT: s_mov_b32 m0, s2
|
|
; GFX942-NEXT: s_nop 0
|
|
; GFX942-NEXT: global_load_lds_dword v1, s[0:1] offset:32 nt
|
|
; GFX942-NEXT: s_endpgm
|
|
;
|
|
; GFX10-LABEL: global_load_lds_dword_saddr:
|
|
; GFX10: ; %bb.0: ; %main_body
|
|
; GFX10-NEXT: v_readfirstlane_b32 s2, v0
|
|
; GFX10-NEXT: v_mov_b32_e32 v0, 0
|
|
; GFX10-NEXT: s_mov_b32 m0, s2
|
|
; GFX10-NEXT: global_load_dword v0, s[0:1] offset:32 slc lds
|
|
; GFX10-NEXT: s_endpgm
|
|
;
|
|
; GFX900-GISEL-LABEL: global_load_lds_dword_saddr:
|
|
; GFX900-GISEL: ; %bb.0: ; %main_body
|
|
; GFX900-GISEL-NEXT: v_readfirstlane_b32 m0, v0
|
|
; GFX900-GISEL-NEXT: v_mov_b32_e32 v0, 0
|
|
; GFX900-GISEL-NEXT: s_nop 3
|
|
; GFX900-GISEL-NEXT: global_load_dword v0, s[0:1] offset:32 slc lds
|
|
; GFX900-GISEL-NEXT: s_endpgm
|
|
main_body:
|
|
call void @llvm.amdgcn.global.load.lds(ptr addrspace(1) %gptr, ptr addrspace(3) %lptr, i32 4, i32 32, i32 2)
|
|
ret void
|
|
}
|
|
|
|
define amdgpu_ps void @global_load_lds_dword_saddr_and_vaddr(ptr addrspace(1) nocapture inreg %gptr, ptr addrspace(3) nocapture %lptr, i32 %voffset) {
|
|
; GFX900-LABEL: global_load_lds_dword_saddr_and_vaddr:
|
|
; GFX900: ; %bb.0: ; %main_body
|
|
; GFX900-NEXT: v_readfirstlane_b32 s2, v0
|
|
; GFX900-NEXT: s_mov_b32 m0, s2
|
|
; GFX900-NEXT: s_nop 0
|
|
; GFX900-NEXT: global_load_dword v1, s[0:1] offset:48 lds
|
|
; GFX900-NEXT: s_endpgm
|
|
;
|
|
; GFX90A-LABEL: global_load_lds_dword_saddr_and_vaddr:
|
|
; GFX90A: ; %bb.0: ; %main_body
|
|
; GFX90A-NEXT: v_readfirstlane_b32 s2, v0
|
|
; GFX90A-NEXT: s_mov_b32 m0, s2
|
|
; GFX90A-NEXT: s_nop 0
|
|
; GFX90A-NEXT: global_load_dword v1, s[0:1] offset:48 scc lds
|
|
; GFX90A-NEXT: s_endpgm
|
|
;
|
|
; GFX942-LABEL: global_load_lds_dword_saddr_and_vaddr:
|
|
; GFX942: ; %bb.0: ; %main_body
|
|
; GFX942-NEXT: v_readfirstlane_b32 s2, v0
|
|
; GFX942-NEXT: s_mov_b32 m0, s2
|
|
; GFX942-NEXT: s_nop 0
|
|
; GFX942-NEXT: global_load_lds_dword v1, s[0:1] offset:48 sc1
|
|
; GFX942-NEXT: s_endpgm
|
|
;
|
|
; GFX10-LABEL: global_load_lds_dword_saddr_and_vaddr:
|
|
; GFX10: ; %bb.0: ; %main_body
|
|
; GFX10-NEXT: v_readfirstlane_b32 s2, v0
|
|
; GFX10-NEXT: s_mov_b32 m0, s2
|
|
; GFX10-NEXT: global_load_dword v1, s[0:1] offset:48 lds
|
|
; GFX10-NEXT: s_endpgm
|
|
;
|
|
; GFX900-GISEL-LABEL: global_load_lds_dword_saddr_and_vaddr:
|
|
; GFX900-GISEL: ; %bb.0: ; %main_body
|
|
; GFX900-GISEL-NEXT: v_readfirstlane_b32 m0, v0
|
|
; GFX900-GISEL-NEXT: s_nop 4
|
|
; GFX900-GISEL-NEXT: global_load_dword v1, s[0:1] offset:48 lds
|
|
; GFX900-GISEL-NEXT: s_endpgm
|
|
main_body:
|
|
%voffset.64 = zext i32 %voffset to i64
|
|
%gep = getelementptr i8, ptr addrspace(1) %gptr, i64 %voffset.64
|
|
call void @llvm.amdgcn.global.load.lds(ptr addrspace(1) %gep, ptr addrspace(3) %lptr, i32 4, i32 48, i32 16)
|
|
ret void
|
|
}
|
|
|
|
define amdgpu_ps void @global_load_lds_ushort_vaddr(ptr addrspace(1) nocapture %gptr, ptr addrspace(3) nocapture %lptr) {
|
|
; GFX900-LABEL: global_load_lds_ushort_vaddr:
|
|
; GFX900: ; %bb.0: ; %main_body
|
|
; GFX900-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX900-NEXT: s_mov_b32 m0, s0
|
|
; GFX900-NEXT: s_nop 0
|
|
; GFX900-NEXT: global_load_ushort v[0:1], off lds
|
|
; GFX900-NEXT: s_endpgm
|
|
;
|
|
; GFX90A-LABEL: global_load_lds_ushort_vaddr:
|
|
; GFX90A: ; %bb.0: ; %main_body
|
|
; GFX90A-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX90A-NEXT: s_mov_b32 m0, s0
|
|
; GFX90A-NEXT: s_nop 0
|
|
; GFX90A-NEXT: global_load_ushort v[0:1], off lds
|
|
; GFX90A-NEXT: s_endpgm
|
|
;
|
|
; GFX942-LABEL: global_load_lds_ushort_vaddr:
|
|
; GFX942: ; %bb.0: ; %main_body
|
|
; GFX942-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX942-NEXT: s_mov_b32 m0, s0
|
|
; GFX942-NEXT: s_nop 0
|
|
; GFX942-NEXT: global_load_lds_ushort v[0:1], off
|
|
; GFX942-NEXT: s_endpgm
|
|
;
|
|
; GFX10-LABEL: global_load_lds_ushort_vaddr:
|
|
; GFX10: ; %bb.0: ; %main_body
|
|
; GFX10-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX10-NEXT: s_mov_b32 m0, s0
|
|
; GFX10-NEXT: global_load_ushort v[0:1], off dlc lds
|
|
; GFX10-NEXT: s_endpgm
|
|
;
|
|
; GFX900-GISEL-LABEL: global_load_lds_ushort_vaddr:
|
|
; GFX900-GISEL: ; %bb.0: ; %main_body
|
|
; GFX900-GISEL-NEXT: v_readfirstlane_b32 m0, v2
|
|
; GFX900-GISEL-NEXT: s_nop 4
|
|
; GFX900-GISEL-NEXT: global_load_ushort v[0:1], off lds
|
|
; GFX900-GISEL-NEXT: s_endpgm
|
|
main_body:
|
|
call void @llvm.amdgcn.global.load.lds(ptr addrspace(1) %gptr, ptr addrspace(3) %lptr, i32 2, i32 0, i32 4)
|
|
ret void
|
|
}
|
|
|
|
define amdgpu_ps void @global_load_lds_ubyte_vaddr(ptr addrspace(1) nocapture %gptr, ptr addrspace(3) nocapture %lptr) {
|
|
; GFX900-LABEL: global_load_lds_ubyte_vaddr:
|
|
; GFX900: ; %bb.0: ; %main_body
|
|
; GFX900-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX900-NEXT: s_mov_b32 m0, s0
|
|
; GFX900-NEXT: s_nop 0
|
|
; GFX900-NEXT: global_load_ubyte v[0:1], off lds
|
|
; GFX900-NEXT: s_endpgm
|
|
;
|
|
; GFX90A-LABEL: global_load_lds_ubyte_vaddr:
|
|
; GFX90A: ; %bb.0: ; %main_body
|
|
; GFX90A-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX90A-NEXT: s_mov_b32 m0, s0
|
|
; GFX90A-NEXT: s_nop 0
|
|
; GFX90A-NEXT: global_load_ubyte v[0:1], off lds
|
|
; GFX90A-NEXT: s_endpgm
|
|
;
|
|
; GFX942-LABEL: global_load_lds_ubyte_vaddr:
|
|
; GFX942: ; %bb.0: ; %main_body
|
|
; GFX942-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX942-NEXT: s_mov_b32 m0, s0
|
|
; GFX942-NEXT: s_nop 0
|
|
; GFX942-NEXT: global_load_lds_ubyte v[0:1], off
|
|
; GFX942-NEXT: s_endpgm
|
|
;
|
|
; GFX10-LABEL: global_load_lds_ubyte_vaddr:
|
|
; GFX10: ; %bb.0: ; %main_body
|
|
; GFX10-NEXT: v_readfirstlane_b32 s0, v2
|
|
; GFX10-NEXT: s_mov_b32 m0, s0
|
|
; GFX10-NEXT: global_load_ubyte v[0:1], off lds
|
|
; GFX10-NEXT: s_endpgm
|
|
;
|
|
; GFX900-GISEL-LABEL: global_load_lds_ubyte_vaddr:
|
|
; GFX900-GISEL: ; %bb.0: ; %main_body
|
|
; GFX900-GISEL-NEXT: v_readfirstlane_b32 m0, v2
|
|
; GFX900-GISEL-NEXT: s_nop 4
|
|
; GFX900-GISEL-NEXT: global_load_ubyte v[0:1], off lds
|
|
; GFX900-GISEL-NEXT: s_endpgm
|
|
main_body:
|
|
call void @llvm.amdgcn.global.load.lds(ptr addrspace(1) %gptr, ptr addrspace(3) %lptr, i32 1, i32 0, i32 0)
|
|
ret void
|
|
}
|