@@ -1499,6 +1499,8 @@ void CEncoder::ShflIdx4(CVariable *dst, CVariable *src0, CVariable *src1) {
14991499 VISA_RawOpnd *dstOpnd = GetRawDestination (dst);
15001500 VISA_PredOpnd *predOpnd = GetFlagOperand (m_encoderState.m_flag );
15011501
1502+ V (vKernel->AppendVISAShflIdx4Inst (ISA_SHFL_IDX4, predOpnd, GetAluEMask (dst), GetAluExecSize (dst), dstOpnd, src0Opnd,
1503+ src1Opnd));
15021504}
15031505// We allow H1 to be nullptr for the common case of adding 64-bit variable
15041506// with 32-bit imm
@@ -4363,6 +4365,9 @@ void CEncoder::InitVISABuilderOptions(TARGET_PLATFORM VISAPlatform, SIMDMode sim
43634365 if (IGC_IS_FLAG_ENABLED (CopyA0ToDBG0)) {
43644366 SaveOption (vISA_CopyA0ToDBG0, true );
43654367 }
4368+ if (IGC_IS_FLAG_ENABLED (CopyMsg0ToDbg0)) {
4369+ SaveOption (vISA_CopyMsg0ToDbg0, true );
4370+ }
43664371
43674372 if (VISAPlatform == Xe_XeHPSDV && IGC_IS_FLAG_ENABLED (DPASTokenReduction)) {
43684373 SaveOption (vISA_EnableDPASTokenReduction, true );
@@ -4581,6 +4586,15 @@ void CEncoder::InitVISABuilderOptions(TARGET_PLATFORM VISAPlatform, SIMDMode sim
45814586 SaveOption (vISA_EnableProgrammableOffsetsMessageBitInHeader, true );
45824587 }
45834588
4589+ if (m_program->m_Platform ->hasEfficient64bEnabled ()) {
4590+ SaveOption (vISA_enableEfficient64b, true );
4591+ }
4592+ if (!m_program->m_Platform ->supportStatefulScaleFolding ()) {
4593+ // vISA_supportLSCImmScale has value 3 by default, which enables address
4594+ // offset scaling in all cases. Set value to 0 to disable UGM-scratch and
4595+ // SLM cases.
4596+ SaveOption (vISA_supportLSCImmScale, (uint32_t )0 );
4597+ }
45844598 if (uint32_t Val = IGC_GET_FLAG_VALUE (EnableScalarPipe)) {
45854599 SaveOption (vISA_ScalarPipe, Val);
45864600 }
@@ -7056,6 +7070,8 @@ void CEncoder::bdpas(CVariable *Dst, CVariable *Acc, CVariable *B, PrecisionType
70567070 VISA_VectorOpnd *srcOpnd3 = GetSourceOperand (scalingPartsB[partIndex], noMod);
70577071 VISA_VectorOpnd *srcOpnd4 = GetSourceOperand (scalingPartsA[partIndex], noMod);
70587072
7073+ V (vKernel->AppendVISABdpasInst (ISA_BDPAS, splitExecMask, toExecSize, dstOpnd, srcOpnd0, srcOpnd1, srcOpnd2,
7074+ srcOpnd3, srcOpnd4, src2Precision, src1Precision, systolicDepth, repeatCount));
70597075 }
70607076 uint32_t dstOfstBytes = m_encoderState.m_dstOperand .subVar * getGRFSize () + Dst->GetAliasOffset ();
70617077 MergePayloadToHigherSIMD (partsDst[0 ], partsDst[1 ], repeatCount, Dst, dstOfstBytes, visaNumLanes (fromExecSize));
@@ -7080,6 +7096,8 @@ void CEncoder::bdpas(CVariable *Dst, CVariable *Acc, CVariable *B, PrecisionType
70807096 VISA_VectorOpnd *srcOpnd3 = GetSourceOperand (BScaling, noMod);
70817097 VISA_VectorOpnd *srcOpnd4 = GetSourceOperand (AScaling, noMod);
70827098
7099+ V (vKernel->AppendVISABdpasInst (ISA_BDPAS, execMask, execSize, dstOpnd, srcOpnd0, srcOpnd1, srcOpnd2, srcOpnd3,
7100+ srcOpnd4, src2Precision, src1Precision, systolicDepth, repeatCount));
70837101 }
70847102}
70857103
@@ -7241,6 +7259,9 @@ void CEncoder::lfsr(CVariable *dst, CVariable *src0, CVariable *src1, LFSR_FC fu
72417259 VISA_VectorOpnd *srcOpnd0 = GetSourceOperand (src0, m_encoderState.m_srcOperand [0 ]);
72427260 VISA_VectorOpnd *srcOpnd1 = GetSourceOperand (src1, m_encoderState.m_srcOperand [1 ]);
72437261
7262+ V (vKernel->AppendVISALfsrInst (predOpnd, GetAluEMask (dst),
7263+ visaExecSize (dst->IsUniform () ? m_encoderState.m_uniformSIMDSize : simdMode), funcCtrl,
7264+ dstOpnd, srcOpnd0, srcOpnd1));
72447265}
72457266
72467267void CEncoder::srnd (CVariable *D, CVariable *S0, CVariable *R) {
@@ -7264,6 +7285,10 @@ void CEncoder::emitDnscl(CVariable *dst, CVariable *src0, CVariable *src1, CVari
72647285 VISA_RawOpnd *srcOpnd1 = GetRawSource (src1);
72657286 VISA_RawOpnd *srcOpnd2 = GetRawSource (bias);
72667287
7288+ V (vKernel->AppendVISADnsclInst (
7289+ predOpnd, GetAluEMask (dst),
7290+ visaExecSize (dst->IsUniform () ? m_encoderState.m_uniformSIMDSize : m_encoderState.m_simdSize ), convType, packMode,
7291+ roundMode, dstOpnd, srcOpnd0, srcOpnd1, srcOpnd2));
72677292}
72687293
72697294std::string CEncoder::GetVariableName (CVariable *var) {
0 commit comments