blob: 27b613606a92431a04be0f037ddada0bebba5fe8 [file]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc -global-isel=0 -mtriple=amdgpu12.50 < %s | FileCheck -check-prefixes=GFX12,GFX12-SDAG %s
; RUN: llc -global-isel=0 -mtriple=amdgpu12.50 < %s | FileCheck -check-prefixes=GFX12,GFX12-ISEL %s
define amdgpu_kernel void @kernel1() #0 {
; GFX12-LABEL: kernel1:
; GFX12: ; %bb.0:
; GFX12-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1 ; msbs: dst=0 src0=0 src1=0 src2=0
; GFX12-NEXT: s_mov_b64 s[64:65], 0
; GFX12-NEXT: v_nop
; GFX12-NEXT: global_prefetch_b8 v0, s[64:65] scope:SCOPE_SE
; GFX12-NEXT: s_cmp_eq_u32 0, 0
; GFX12-NEXT: s_barrier_signal_isfirst -1
; GFX12-NEXT: s_barrier_wait -1
; GFX12-NEXT: s_cselect_b32 s0, 1, 0
; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1)
; GFX12-NEXT: s_cmp_lg_u32 s0, 1
; GFX12-NEXT: s_cbranch_scc1 .LBB0_2
; GFX12-NEXT: ; %bb.1:
; GFX12-NEXT: s_barrier_signal -3
; GFX12-NEXT: .LBB0_2:
; GFX12-NEXT: s_barrier_wait -3
; GFX12-NEXT: s_get_barrier_state s0, -3
; GFX12-NEXT: s_endpgm
call void @llvm.amdgcn.s.cluster.barrier()
%state3 = call i32 @llvm.amdgcn.s.get.barrier.state(i32 -3)
ret void
}
declare void @llvm.amdgcn.s.cluster.barrier() #1
declare i32 @llvm.amdgcn.s.get.barrier.state(i32) #1
attributes #0 = { nounwind }
attributes #1 = { convergent nounwind }
attributes #2 = { nounwind readnone }
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
; GFX12-ISEL: {{.*}}
; GFX12-SDAG: {{.*}}