|
| 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=gfx900 < %s | FileCheck %s -check-prefix=SDAG |
| 3 | +; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck %s -check-prefix=GFX9-GISEL |
| 4 | +; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1010 < %s | FileCheck %s -check-prefix=SDAG |
| 5 | +; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx1010 < %s | FileCheck %s -check-prefix=GFX10-GISEL |
| 6 | + |
| 7 | +define amdgpu_ps void @test(ptr addrspace(1) inreg %ptr) { |
| 8 | +; SDAG-LABEL: test: |
| 9 | +; SDAG: ; %bb.0: |
| 10 | +; SDAG-NEXT: s_mov_b32 s2, src_pops_exiting_wave_id |
| 11 | +; SDAG-NEXT: v_mov_b32_e32 v0, 0 |
| 12 | +; SDAG-NEXT: v_mov_b32_e32 v1, s2 |
| 13 | +; SDAG-NEXT: global_store_dword v0, v1, s[0:1] |
| 14 | +; SDAG-NEXT: s_endpgm |
| 15 | +; |
| 16 | +; GFX9-GISEL-LABEL: test: |
| 17 | +; GFX9-GISEL: ; %bb.0: |
| 18 | +; GFX9-GISEL-NEXT: s_mov_b32 s2, src_pops_exiting_wave_id |
| 19 | +; GFX9-GISEL-NEXT: v_mov_b32_e32 v0, s2 |
| 20 | +; GFX9-GISEL-NEXT: v_mov_b32_e32 v1, 0 |
| 21 | +; GFX9-GISEL-NEXT: global_store_dword v1, v0, s[0:1] |
| 22 | +; GFX9-GISEL-NEXT: s_endpgm |
| 23 | +; |
| 24 | +; GFX10-GISEL-LABEL: test: |
| 25 | +; GFX10-GISEL: ; %bb.0: |
| 26 | +; GFX10-GISEL-NEXT: s_mov_b32 s2, src_pops_exiting_wave_id |
| 27 | +; GFX10-GISEL-NEXT: v_mov_b32_e32 v1, 0 |
| 28 | +; GFX10-GISEL-NEXT: v_mov_b32_e32 v0, s2 |
| 29 | +; GFX10-GISEL-NEXT: global_store_dword v1, v0, s[0:1] |
| 30 | +; GFX10-GISEL-NEXT: s_endpgm |
| 31 | + %id = call i32 @llvm.amdgcn.pops.exiting.wave.id() |
| 32 | + store i32 %id, ptr addrspace(1) %ptr |
| 33 | + ret void |
| 34 | +} |
0 commit comments