@@ -4904,6 +4904,17 @@ static uint32_t getBlockMsgSize(uint32_t bytesRemaining, bool do256Byte)
4904
4904
4905
4905
4906
4906
void EmitPass::emitSimdBlockWrite(llvm::Instruction* inst, llvm::Value* ptrVal)
4907
+ {
4908
+ emitLegacySimdBlockWrite(inst, ptrVal);
4909
+
4910
+ }
4911
+
4912
+ void EmitPass::emitSimdBlockRead(llvm::Instruction* inst, llvm::Value* ptrVal)
4913
+ {
4914
+ emitLegacySimdBlockRead(inst, ptrVal);
4915
+ }
4916
+
4917
+ void EmitPass::emitLegacySimdBlockWrite(llvm::Instruction* inst, llvm::Value* ptrVal)
4907
4918
{
4908
4919
Value* llPtr = inst->getOperand(0);
4909
4920
Value* dataPtr = inst->getOperand(1);
@@ -5091,7 +5102,7 @@ void EmitPass::emitSimdBlockWrite(llvm::Instruction* inst, llvm::Value* ptrVal)
5091
5102
}
5092
5103
}
5093
5104
5094
- void EmitPass::emitSimdBlockRead (llvm::Instruction* inst, llvm::Value* ptrVal)
5105
+ void EmitPass::emitLegacySimdBlockRead (llvm::Instruction* inst, llvm::Value* ptrVal)
5095
5106
{
5096
5107
Value* llPtr = inst->getOperand(0);
5097
5108
PointerType* ptrType = cast<PointerType>(llPtr->getType());
@@ -5278,6 +5289,7 @@ void EmitPass::emitSimdBlockRead(llvm::Instruction* inst, llvm::Value* ptrVal)
5278
5289
}
5279
5290
}
5280
5291
5292
+
5281
5293
void EmitPass::emitMediaBlockIO(const llvm::GenIntrinsicInst* inst, bool isRead)
5282
5294
{
5283
5295
uint ImgArgIndex = (uint)GetImmediateVal(inst->getOperand(0));
@@ -14556,15 +14568,13 @@ void EmitPass::emitVectorLoad(LoadInst* inst, Value* offset, ConstantInt* immOff
14556
14568
m_encoder->SetUniformSIMDSize(SIMDMode::SIMD1);
14557
14569
}
14558
14570
14571
+ if (useA32)
14559
14572
{
14560
- if (useA32)
14561
- {
14562
- m_encoder->ByteGather(gatherDst, resource, eOffset, 8, totalBytes);
14563
- }
14564
- else
14565
- {
14566
- emitGatherA64(gatherDst, eOffset, 8, totalBytes);
14567
- }
14573
+ m_encoder->ByteGather(gatherDst, resource, eOffset, 8, totalBytes);
14574
+ }
14575
+ else
14576
+ {
14577
+ emitGatherA64(gatherDst, eOffset, 8, totalBytes);
14568
14578
}
14569
14579
14570
14580
m_encoder->Push();
@@ -15153,18 +15163,16 @@ void EmitPass::emitVectorStore(StoreInst* inst, Value* offset, ConstantInt* immO
15153
15163
}
15154
15164
setPredicateForDiscard();
15155
15165
15166
+ if (useA32)
15156
15167
{
15157
- if (useA32)
15158
- {
15159
- {
15160
- m_encoder->ByteScatter(storedVar, resource, eOffset, blkBits, nBlks);
15161
- }
15162
- }
15163
- else
15164
15168
{
15165
- emitScatterA64 (storedVar, eOffset, blkBits, nBlks);
15169
+ m_encoder->ByteScatter (storedVar, resource , eOffset, blkBits, nBlks);
15166
15170
}
15167
15171
}
15172
+ else
15173
+ {
15174
+ emitScatterA64(storedVar, eOffset, blkBits, nBlks);
15175
+ }
15168
15176
15169
15177
if (dstUniform)
15170
15178
{
@@ -15179,7 +15187,6 @@ void EmitPass::emitVectorStore(StoreInst* inst, Value* offset, ConstantInt* immO
15179
15187
storedVar = BroadcastIfUniform(storedVar);
15180
15188
15181
15189
VectorMessage VecMessInfo(this);
15182
-
15183
15190
VecMessInfo.getInfo(Ty, align, useA32);
15184
15191
15185
15192
for (uint32_t i = 0; i < VecMessInfo.numInsts; ++i)
@@ -15241,6 +15248,7 @@ void EmitPass::emitVectorStore(StoreInst* inst, Value* offset, ConstantInt* immO
15241
15248
}
15242
15249
}
15243
15250
15251
+
15244
15252
void EmitPass::emitVectorCopy(CVariable* Dst, CVariable* Src, uint32_t nElts,
15245
15253
uint32_t DstSubRegOffset, uint32_t SrcSubRegOffset)
15246
15254
{
0 commit comments