Skip to content

Commit 8d5776f

Browse files
lwesiersigcbot
authored andcommitted
Fix for GenISA_intatomicrawsinglelane
Fix for GenISA_intatomicrawsinglelane
1 parent 7e666d9 commit 8d5776f

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

IGC/Compiler/CISACodeGen/EmitVISAPass.cpp

+7-3
Original file line numberDiff line numberDiff line change
@@ -9235,6 +9235,7 @@ void EmitPass::EmitGenIntrinsicMessage(llvm::GenIntrinsicInst* inst)
92359235
case GenISAIntrinsic::GenISA_fcmpxchgatomicraw:
92369236
case GenISAIntrinsic::GenISA_icmpxchgatomicrawA64:
92379237
case GenISAIntrinsic::GenISA_fcmpxchgatomicrawA64:
9238+
case GenISAIntrinsic::GenISA_intatomicrawsinglelane:
92389239
emitAtomicRaw(inst, inst->getOperand(1));
92399240
break;
92409241
case GenISAIntrinsic::GenISA_intatomictyped:
@@ -16234,14 +16235,16 @@ void EmitPass::emitAtomicRaw(llvm::GenIntrinsicInst *pInst, Value *dstAddr,
1623416235
}
1623516236

1623616237
Function* F = pInst->getParent()->getParent();
16237-
if (F->hasFnAttribute("KMPLOCK") && m_currShader->GetIsUniform(pInst))
16238+
if ((F->hasFnAttribute("KMPLOCK") && m_currShader->GetIsUniform(pInst)) ||
16239+
IID == GenISAIntrinsic::GenISA_intatomicrawsinglelane)
1623816240
{
1623916241
m_encoder->SetSimdSize(SIMDMode::SIMD1);
1624016242
m_encoder->SetNoMask();
1624116243
}
1624216244
pDstAddr = BroadcastIfUniform(pDstAddr);
1624316245

16244-
if (F->hasFnAttribute("KMPLOCK") && m_currShader->GetIsUniform(pInst))
16246+
if ((F->hasFnAttribute("KMPLOCK") && m_currShader->GetIsUniform(pInst)) ||
16247+
IID == GenISAIntrinsic::GenISA_intatomicrawsinglelane)
1624516248
{
1624616249
m_encoder->SetSimdSize(SIMDMode::SIMD1);
1624716250
m_encoder->SetNoMask();
@@ -16251,7 +16254,8 @@ void EmitPass::emitAtomicRaw(llvm::GenIntrinsicInst *pInst, Value *dstAddr,
1625116254
pSrc0 = UnpackOrBroadcastIfUniform(pSrc0);
1625216255
}
1625316256

16254-
if (F->hasFnAttribute("KMPLOCK") && m_currShader->GetIsUniform(pInst))
16257+
if ((F->hasFnAttribute("KMPLOCK") && m_currShader->GetIsUniform(pInst)) ||
16258+
IID == GenISAIntrinsic::GenISA_intatomicrawsinglelane)
1625516259
{
1625616260
m_encoder->SetSimdSize(SIMDMode::SIMD1);
1625716261
m_encoder->SetNoMask();

0 commit comments

Comments
 (0)