Skip to content

Commit 62b3a4b

Browse files
authored
[AMDGPU] Improve codegen for s_barrier_init (#111866)
1 parent 453d373 commit 62b3a4b

File tree

2 files changed

+2
-6
lines changed

2 files changed

+2
-6
lines changed

llvm/lib/Target/AMDGPU/SIISelLowering.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10031,9 +10031,7 @@ SDValue SITargetLowering::LowerINTRINSIC_VOID(SDValue Op,
1003110031
// If reference to barrier id is not an inline constant then it must be
1003210032
// referenced with M0[4:0]. Perform an OR with the member count to
1003310033
// include it in M0.
10034-
M0Val = SDValue(DAG.getMachineNode(AMDGPU::S_OR_B32, DL, MVT::i32,
10035-
Op.getOperand(2), M0Val),
10036-
0);
10034+
M0Val = DAG.getNode(ISD::OR, DL, MVT::i32, Op.getOperand(2), M0Val);
1003710035
}
1003810036
Ops.push_back(copyToM0(DAG, Chain, DL, M0Val).getValue(0));
1003910037
} else if (IsInlinableBarID) {

llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.wait.ll

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -737,11 +737,9 @@ define void @test5_s_barrier_init_m0(i32 %arg1 ,i32 %arg2) {
737737
; GFX12-SDAG-NEXT: s_wait_samplecnt 0x0
738738
; GFX12-SDAG-NEXT: s_wait_bvhcnt 0x0
739739
; GFX12-SDAG-NEXT: s_wait_kmcnt 0x0
740-
; GFX12-SDAG-NEXT: v_lshlrev_b32_e32 v1, 16, v1
740+
; GFX12-SDAG-NEXT: v_lshl_or_b32 v0, v1, 16, v0
741741
; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
742-
; GFX12-SDAG-NEXT: v_or_b32_e32 v0, v0, v1
743742
; GFX12-SDAG-NEXT: v_readfirstlane_b32 s0, v0
744-
; GFX12-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1)
745743
; GFX12-SDAG-NEXT: s_mov_b32 m0, s0
746744
; GFX12-SDAG-NEXT: s_barrier_init m0
747745
; GFX12-SDAG-NEXT: s_wait_alu 0xfffe

0 commit comments

Comments
 (0)