@@ -5776,12 +5776,8 @@ void HWConformity::conformBB(G4_BB *bb) {
57765776 fixVxHFloat64b (i, bb);
57775777 }
57785778
5779- if (builder.supportFloatOr64bRegioning ()) {
5780- // This function is for pre-Xe_XeHPSDV platforms. Xe_XeHPSDV+ platforms
5781- // should be fixed in fixUnalignedRegions() later.
5782- if (fix64bInst (i, bb)) {
5783- continue ;
5784- }
5779+ if (fix64bInst (i, bb)) {
5780+ continue ;
57855781 }
57865782
57875783#ifdef _DEBUG
@@ -5844,15 +5840,6 @@ void HWConformity::conformBB(G4_BB *bb) {
58445840 }
58455841 }
58465842
5847- // Do immdiate Address offset OOB check as previous fixes may generate
5848- // invalid ImmAddrOffset.
5849- for (auto iter = bb->begin (), iterEnd = bb->end (); iter != iterEnd; ++iter) {
5850- fixImmAddrOffsetOOB (iter, bb);
5851- #ifdef _DEBUG
5852- verifyG4Kernel (kernel, Optimizer::PI_HWConformityChk, false );
5853- #endif
5854- }
5855-
58565843 if (builder.getNativeExecSize () <= g4::SIMD8) {
58575844 return ;
58585845 }
@@ -5946,6 +5933,15 @@ void HWConformity::conformBB(G4_BB *bb) {
59465933#endif
59475934 }
59485935 }
5936+
5937+ // Immdiate Address offset OOB check should be put at the end of conformBB
5938+ // as previous fixes may generate invalid ImmAddrOffset.
5939+ for (auto iter = bb->begin (), iterEnd = bb->end (); iter != iterEnd; ++iter) {
5940+ fixImmAddrOffsetOOB (iter, bb);
5941+ #ifdef _DEBUG
5942+ verifyG4Kernel (kernel, Optimizer::PI_HWConformityChk, false );
5943+ #endif
5944+ }
59495945}
59505946
59515947//
@@ -9846,9 +9842,7 @@ void HWConformity::fixImmAddrOffsetOOB(INST_LIST_ITER it, G4_BB *bb) {
98469842 // add(execSize) A(0,0)<1>:uw A(0,0)<1;1,0>:uw imm:w
98479843 auto addrDst = builder.createDst (var->getBase (), 0 , sregOff, 1 , Type_UW);
98489844 auto addrSrc = builder.createSrc (var->getBase (), 0 , sregOff,
9849- execSize == 1 ? builder.getRegionScalar ()
9850- : builder.getRegionStride1 (),
9851- Type_UW);
9845+ builder.getRegionStride1 (), Type_UW);
98529846 auto immSrc = builder.createImm (imm, Type_W);
98539847 auto addrAddInst = builder.createInternalInst (
98549848 nullptr , G4_add, nullptr , g4::NOSAT, G4_ExecSize (execSize), addrDst,
0 commit comments