|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 |
2 | | -; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1200 < %s | FileCheck -check-prefix=GFX12 %s |
3 | | -; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1200 < %s | FileCheck -check-prefix=GFX12 %s |
| 2 | +; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1200 < %s | FileCheck -check-prefix=GFX1200 %s |
| 3 | +; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1200 < %s | FileCheck -check-prefix=GFX1200 %s |
| 4 | +; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1250 < %s | FileCheck -check-prefix=GFX1250-SDAG %s |
| 5 | +; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1250 < %s | FileCheck -check-prefix=GFX1250-GISEL %s |
4 | 6 |
|
5 | 7 | define amdgpu_ps void @intrinsic_store_system_scope(i32 %val, <4 x i32> inreg %rsrc, i32 %vindex, i32 %voffset, i32 inreg %soffset) { |
6 | | -; GFX12-LABEL: intrinsic_store_system_scope: |
7 | | -; GFX12: ; %bb.0: |
8 | | -; GFX12-NEXT: buffer_store_b32 v0, v[1:2], s[0:3], s4 idxen offen scope:SCOPE_SYS |
9 | | -; GFX12-NEXT: s_endpgm |
| 8 | +; GFX1200-LABEL: intrinsic_store_system_scope: |
| 9 | +; GFX1200: ; %bb.0: |
| 10 | +; GFX1200-NEXT: buffer_store_b32 v0, v[1:2], s[0:3], s4 idxen offen scope:SCOPE_SYS |
| 11 | +; GFX1200-NEXT: s_endpgm |
| 12 | +; |
| 13 | +; GFX1250-SDAG-LABEL: intrinsic_store_system_scope: |
| 14 | +; GFX1250-SDAG: ; %bb.0: |
| 15 | +; GFX1250-SDAG-NEXT: v_dual_mov_b32 v3, v2 :: v_dual_mov_b32 v2, v1 |
| 16 | +; GFX1250-SDAG-NEXT: buffer_store_b32 v0, v[2:3], s[0:3], s4 idxen offen scope:SCOPE_SYS |
| 17 | +; GFX1250-SDAG-NEXT: s_endpgm |
| 18 | +; |
| 19 | +; GFX1250-GISEL-LABEL: intrinsic_store_system_scope: |
| 20 | +; GFX1250-GISEL: ; %bb.0: |
| 21 | +; GFX1250-GISEL-NEXT: v_dual_mov_b32 v4, v1 :: v_dual_mov_b32 v5, v2 |
| 22 | +; GFX1250-GISEL-NEXT: buffer_store_b32 v0, v[4:5], s[0:3], s4 idxen offen scope:SCOPE_SYS |
| 23 | +; GFX1250-GISEL-NEXT: s_endpgm |
10 | 24 | call void @llvm.amdgcn.struct.buffer.store.i32(i32 %val, <4 x i32> %rsrc, i32 %vindex, i32 %voffset, i32 %soffset, i32 24) |
11 | 25 | ret void |
12 | 26 | } |
13 | 27 |
|
14 | 28 | define amdgpu_ps void @generic_store_volatile(i32 %val, ptr addrspace(1) %out) { |
15 | | -; GFX12-LABEL: generic_store_volatile: |
16 | | -; GFX12: ; %bb.0: |
17 | | -; GFX12-NEXT: global_store_b32 v[1:2], v0, off scope:SCOPE_SYS |
18 | | -; GFX12-NEXT: s_wait_storecnt 0x0 |
19 | | -; GFX12-NEXT: s_endpgm |
| 29 | +; GFX1200-LABEL: generic_store_volatile: |
| 30 | +; GFX1200: ; %bb.0: |
| 31 | +; GFX1200-NEXT: global_store_b32 v[1:2], v0, off scope:SCOPE_SYS |
| 32 | +; GFX1200-NEXT: s_wait_storecnt 0x0 |
| 33 | +; GFX1200-NEXT: s_endpgm |
| 34 | +; |
| 35 | +; GFX1250-SDAG-LABEL: generic_store_volatile: |
| 36 | +; GFX1250-SDAG: ; %bb.0: |
| 37 | +; GFX1250-SDAG-NEXT: v_dual_mov_b32 v3, v2 :: v_dual_mov_b32 v2, v1 |
| 38 | +; GFX1250-SDAG-NEXT: global_store_b32 v[2:3], v0, off scope:SCOPE_SYS |
| 39 | +; GFX1250-SDAG-NEXT: s_wait_storecnt 0x0 |
| 40 | +; GFX1250-SDAG-NEXT: s_endpgm |
| 41 | +; |
| 42 | +; GFX1250-GISEL-LABEL: generic_store_volatile: |
| 43 | +; GFX1250-GISEL: ; %bb.0: |
| 44 | +; GFX1250-GISEL-NEXT: v_dual_mov_b32 v4, v1 :: v_dual_mov_b32 v5, v2 |
| 45 | +; GFX1250-GISEL-NEXT: global_store_b32 v[4:5], v0, off scope:SCOPE_SYS |
| 46 | +; GFX1250-GISEL-NEXT: s_wait_storecnt 0x0 |
| 47 | +; GFX1250-GISEL-NEXT: s_endpgm |
20 | 48 | store volatile i32 %val, ptr addrspace(1) %out |
21 | 49 | ret void |
22 | 50 | } |
0 commit comments