@@ -2647,7 +2647,7 @@ void EmitPass::emitCmpSADs(llvm::GenIntrinsicInst* inst)
2647
2647
m_encoder->Push();
2648
2648
2649
2649
// Collect the MVs
2650
- if (m_currShader->m_Platform->hasNoInt64Inst ()) {
2650
+ if (m_currShader->m_Platform->hasNoFullI64Support ()) {
2651
2651
CVariable* pMVMinAlias = m_currShader->GetNewAlias(pMVMin, ISA_TYPE_UD, 0, 32);
2652
2652
CVariable* pMVCurrAlias = m_currShader->GetNewAlias(pMVCurr, ISA_TYPE_UD, 0, 32);
2653
2653
@@ -5267,7 +5267,7 @@ void EmitPass::emitLegacySimdBlockWrite(llvm::Instruction* inst, llvm::Value* pt
5267
5267
activelanes, eOffset->GetType(), eOffset->GetAlign(), true, "ScatterOff");
5268
5268
5269
5269
CVariable* immVar = m_currShader->ImmToVariable(0x40, ISA_TYPE_UV);
5270
- if (useA64 && m_currShader->m_Platform->hasNoInt64Inst ()) {
5270
+ if (useA64 && m_currShader->m_Platform->hasNoInt64AddInst ()) {
5271
5271
emitAddPair(ScatterOff, eOffset, immVar);
5272
5272
}
5273
5273
else {
@@ -5329,7 +5329,7 @@ void EmitPass::emitLegacySimdBlockWrite(llvm::Instruction* inst, llvm::Value* pt
5329
5329
5330
5330
if (bytesRemaining)
5331
5331
{
5332
- if (m_currShader->m_Platform->hasNoInt64Inst ()) {
5332
+ if (m_currShader->m_Platform->hasNoInt64AddInst ()) {
5333
5333
CVariable* ImmVar = m_currShader->ImmToVariable(bytesToRead, ISA_TYPE_UD);
5334
5334
emitAddPair(pTempVar, pTempVar, ImmVar);
5335
5335
}
@@ -5463,7 +5463,7 @@ void EmitPass::emitLegacySimdBlockRead(llvm::Instruction* inst, llvm::Value* ptr
5463
5463
activelanes, eOffset->GetType(), eOffset->GetAlign(), true, "GatherOff");
5464
5464
5465
5465
CVariable* immVar = m_currShader->ImmToVariable(0x40, ISA_TYPE_UV);
5466
- if (useA64 && m_currShader->m_Platform->hasNoInt64Inst ()) {
5466
+ if (useA64 && m_currShader->m_Platform->hasNoInt64AddInst ()) {
5467
5467
emitAddPair(gatherOff, eOffset, immVar);
5468
5468
}
5469
5469
else {
@@ -5524,7 +5524,7 @@ void EmitPass::emitLegacySimdBlockRead(llvm::Instruction* inst, llvm::Value* ptr
5524
5524
5525
5525
if (bytesRemaining)
5526
5526
{
5527
- if (m_currShader->m_Platform->hasNoInt64Inst ()) {
5527
+ if (m_currShader->m_Platform->hasNoInt64AddInst ()) {
5528
5528
CVariable* ImmVar = m_currShader->ImmToVariable(bytesToRead, ISA_TYPE_UD);
5529
5529
emitAddPair(pTempVar, pTempVar, ImmVar);
5530
5530
}
@@ -8836,7 +8836,7 @@ void EmitPass::emitAddrSpaceCast(llvm::AddrSpaceCastInst* addrSpaceCast)
8836
8836
8837
8837
if (sourceAddrSpace == ADDRESS_SPACE_PRIVATE)
8838
8838
{
8839
- if (m_pCtx->m_hasEmu64BitInsts && m_currShader->m_Platform->hasNoInt64Inst ())
8839
+ if (m_pCtx->m_hasEmu64BitInsts && m_currShader->m_Platform->hasNoFullI64Support ())
8840
8840
{
8841
8841
if (m_currShader->GetContext()->getRegisterPointerSizeInBits(sourceAddrSpace) == 32)
8842
8842
{
@@ -8907,7 +8907,7 @@ void EmitPass::emitAddrSpaceCast(llvm::AddrSpaceCastInst* addrSpaceCast)
8907
8907
}
8908
8908
else if (sourceAddrSpace == ADDRESS_SPACE_LOCAL)
8909
8909
{
8910
- if (m_pCtx->m_hasEmu64BitInsts && m_currShader->m_Platform->hasNoInt64Inst ())
8910
+ if (m_pCtx->m_hasEmu64BitInsts && m_currShader->m_Platform->hasNoFullI64Support ())
8911
8911
{
8912
8912
if (m_currShader->GetContext()->getRegisterPointerSizeInBits(sourceAddrSpace) == 32)
8913
8913
{
@@ -8989,7 +8989,7 @@ void EmitPass::emitAddrSpaceCast(llvm::AddrSpaceCastInst* addrSpaceCast)
8989
8989
// Address space cast is in the form of generic -> {private, local, global}
8990
8990
// Tag is removed according to the address space of the destination
8991
8991
8992
- if (m_pCtx->m_hasEmu64BitInsts && m_currShader->m_Platform->hasNoInt64Inst ())
8992
+ if (m_pCtx->m_hasEmu64BitInsts && m_currShader->m_Platform->hasNoFullI64Support ())
8993
8993
{
8994
8994
if (m_currShader->GetContext()->getRegisterPointerSizeInBits(destAddrSpace) == 32)
8995
8995
{
@@ -9075,7 +9075,7 @@ CVariable* EmitPass::createAddressSpaceTag(CVariable* src, unsigned int addrSpac
9075
9075
CVariable* taggedSrc = nullptr;
9076
9076
if (addrSpace == ADDRESS_SPACE_PRIVATE)
9077
9077
{
9078
- if (m_pCtx->m_hasEmu64BitInsts && m_currShader->m_Platform->hasNoInt64Inst ())
9078
+ if (m_pCtx->m_hasEmu64BitInsts && m_currShader->m_Platform->hasNoFullI64Support ())
9079
9079
{
9080
9080
if (m_currShader->GetContext()->getRegisterPointerSizeInBits(addrSpace) == 32)
9081
9081
{
@@ -9145,7 +9145,7 @@ CVariable* EmitPass::createAddressSpaceTag(CVariable* src, unsigned int addrSpac
9145
9145
}
9146
9146
else if (addrSpace == ADDRESS_SPACE_LOCAL)
9147
9147
{
9148
- if (m_pCtx->m_hasEmu64BitInsts && m_currShader->m_Platform->hasNoInt64Inst ())
9148
+ if (m_pCtx->m_hasEmu64BitInsts && m_currShader->m_Platform->hasNoFullI64Support ())
9149
9149
{
9150
9150
if (m_currShader->GetContext()->getRegisterPointerSizeInBits(addrSpace) == 32)
9151
9151
{
@@ -11015,7 +11015,7 @@ CVariable* EmitPass::BroadcastIfUniform(CVariable* pVar)
11015
11015
{
11016
11016
IGC_ASSERT_MESSAGE(nullptr != pVar, "pVar is null");
11017
11017
VISA_Type VarT = pVar->GetType();
11018
- bool Need64BitEmu = m_currShader->m_Platform->hasNoInt64Inst () &&
11018
+ bool Need64BitEmu = m_currShader->m_Platform->hasNoFullI64Support () &&
11019
11019
(VarT == ISA_TYPE_Q || VarT == ISA_TYPE_UQ);
11020
11020
bool IsImm = pVar->IsImmediate();
11021
11021
if (pVar->IsUniform())
@@ -11882,7 +11882,7 @@ void EmitPass::emitReductionClustered(const e_opcode op, const uint64_t identity
11882
11882
IGC_ASSERT_MESSAGE(iSTD::BitCount(clusterSize) == 1, "Cluster size must be a power of two.");
11883
11883
IGC_ASSERT_MESSAGE(!is64bitType || CEncoder::GetCISADataTypeSize(type) == 8, "Unsupported 64-bit type.");
11884
11884
11885
- IGC_ASSERT_MESSAGE(!isInt64Type || !m_currShader->m_Platform->hasNoInt64Inst (), "Int64 emulation is not supported.");
11885
+ IGC_ASSERT_MESSAGE(!isInt64Type || !m_currShader->m_Platform->hasNoFullI64Support (), "Int64 emulation is not supported.");
11886
11886
IGC_ASSERT_MESSAGE(!isFP64Type || !m_currShader->m_Platform->hasNoFP64Inst(), "FP64 emulation is not supported.");
11887
11887
// Src might be uniform, as its value will be broadcasted during src preparation.
11888
11888
// Dst uniformness depends on actual support in WIAnalysis, so far implemented for 32-clusters only.
@@ -15208,7 +15208,7 @@ void EmitPass::emitVectorLoad(LoadInst* inst, Value* offset, ConstantInt* immOff
15208
15208
// on platform that does not support 64bit integer add.
15209
15209
//Note: it doesn't seem to be necessary to check hasNoFP64Inst() here.
15210
15210
if (srcUniform && (totalBytes == 4 || totalBytes == 8 || totalBytes == 12 || totalBytes == 16 ||
15211
- (totalBytes == 32 && (useA32 || !m_currShader->m_Platform->hasNoInt64Inst ()))))
15211
+ (totalBytes == 32 && (useA32 || !m_currShader->m_Platform->hasNoFullI64Support ()))))
15212
15212
{
15213
15213
bool needTemp = !destUniform ||
15214
15214
!IsGRFAligned(m_destination, EALIGN_GRF) ||
@@ -15294,7 +15294,7 @@ void EmitPass::emitVectorLoad(LoadInst* inst, Value* offset, ConstantInt* immOff
15294
15294
}
15295
15295
15296
15296
CVariable* immVar = m_currShader->ImmToVariable(incImm, ISA_TYPE_UV);
15297
- if (!useA32 && m_currShader->m_Platform->hasNoInt64Inst ()) {
15297
+ if (!useA32 && m_currShader->m_Platform->hasNoInt64AddInst ()) {
15298
15298
emitAddPair(gatherOff, eOffset, immVar);
15299
15299
}
15300
15300
else {
@@ -15375,7 +15375,7 @@ void EmitPass::emitVectorLoad(LoadInst* inst, Value* offset, ConstantInt* immOff
15375
15375
// Calculate the new element offset
15376
15376
rawAddrVar = m_currShader->GetNewVariable(eOffset);
15377
15377
CVariable* ImmVar = m_currShader->ImmToVariable(eltOffBytes, ISA_TYPE_UD);
15378
- if (!useA32 && m_currShader->m_Platform->hasNoInt64Inst ()) {
15378
+ if (!useA32 && m_currShader->m_Platform->hasNoInt64AddInst ()) {
15379
15379
emitAddPair(rawAddrVar, eOffset, ImmVar);
15380
15380
}
15381
15381
else {
@@ -15448,7 +15448,7 @@ void EmitPass::emitVectorLoad(LoadInst* inst, Value* offset, ConstantInt* immOff
15448
15448
// Calculate the new element offset
15449
15449
rawAddrVar = m_currShader->GetNewVariable(eOffset);
15450
15450
CVariable* ImmVar = m_currShader->ImmToVariable(VecMessInfo.insts[i].startByte, ISA_TYPE_UD);
15451
- if (!useA32 && m_currShader->m_Platform->hasNoInt64Inst ()) {
15451
+ if (!useA32 && m_currShader->m_Platform->hasNoInt64AddInst ()) {
15452
15452
emitAddPair(rawAddrVar, eOffset, ImmVar);
15453
15453
}
15454
15454
else {
@@ -15608,7 +15608,7 @@ void EmitPass::emitVectorStore(StoreInst* inst, Value* offset, ConstantInt* immO
15608
15608
// When work-around of A64 SKL Si limitation of SIMD4, we use SIMD8 (nbelts > nbeltsWanted)
15609
15609
// in which all upper four channels are zero, meaning eOffset[0], Later, stored value
15610
15610
// must use storvedVar[0] for those extra lanes.
15611
- if (!useA32 && m_currShader->m_Platform->hasNoInt64Inst ()) {
15611
+ if (!useA32 && m_currShader->m_Platform->hasNoInt64AddInst ()) {
15612
15612
emitAddPair(NewOff, eOffset, immVar);
15613
15613
}
15614
15614
else {
@@ -15767,7 +15767,7 @@ void EmitPass::emitVectorStore(StoreInst* inst, Value* offset, ConstantInt* immO
15767
15767
// Calculate the new element offset
15768
15768
rawAddrVar = m_currShader->GetNewVariable(eOffset);
15769
15769
CVariable* ImmVar = m_currShader->ImmToVariable(VecMessInfo.insts[i].startByte, ISA_TYPE_UD);
15770
- if (!useA32 && m_currShader->m_Platform->hasNoInt64Inst ()) {
15770
+ if (!useA32 && m_currShader->m_Platform->hasNoInt64AddInst ()) {
15771
15771
emitAddPair(rawAddrVar, eOffset, ImmVar);
15772
15772
}
15773
15773
else {
@@ -15913,7 +15913,7 @@ CVariable* EmitPass::prepareAddressForUniform(
15913
15913
CVariable* offHi = m_currShader->GetNewAlias(off, off->GetType(), 0, halfNElts);
15914
15914
CVariable* offLo = m_currShader->GetNewAlias(off, off->GetType(), bytes2, halfNElts);
15915
15915
15916
- if (isA64 && m_currShader->m_Platform->hasNoInt64Inst ())
15916
+ if (isA64 && m_currShader->m_Platform->hasNoInt64AddInst ())
15917
15917
{
15918
15918
emitAddPair(newVarHi, AddrVar, offHi);
15919
15919
emitAddPair(newVarLo, AddrVar, offLo);
@@ -15936,7 +15936,7 @@ CVariable* EmitPass::prepareAddressForUniform(
15936
15936
m_encoder->Push();
15937
15937
}
15938
15938
}
15939
- else if (isA64 && m_currShader->m_Platform->hasNoInt64Inst () && pow2NElts > 1)
15939
+ else if (isA64 && m_currShader->m_Platform->hasNoInt64AddInst () && pow2NElts > 1)
15940
15940
{
15941
15941
emitAddPair(newVar, AddrVar, off);
15942
15942
}
@@ -16197,7 +16197,7 @@ void EmitPass::emitPushFrameToStack(unsigned& pushSize)
16197
16197
16198
16198
void EmitPass::emitAddPointer(CVariable* Dst, CVariable* Src, CVariable* offset)
16199
16199
{
16200
- if (m_currShader->m_Platform->hasNoInt64Inst () &&
16200
+ if (m_currShader->m_Platform->hasNoInt64AddInst () &&
16201
16201
(Dst->GetType() == ISA_TYPE_Q || Dst->GetType() == ISA_TYPE_UQ) &&
16202
16202
(Src->GetType() == ISA_TYPE_Q || Src->GetType() == ISA_TYPE_UQ))
16203
16203
{
0 commit comments