@@ -3076,7 +3076,9 @@ bool Augmentation::updateDstMaskForGatherRaw(G4_INST *inst,
3076
3076
vISA_ASSERT(curEMBit <= 32, "Illegal mask channel");
3077
3077
}
3078
3078
}
3079
- curEMBit = (unsigned char)inst->getMaskOffset();
3079
+ if (curEMBit != NOMASK_BYTE) {
3080
+ curEMBit = (unsigned char)inst->getMaskOffset();
3081
+ }
3080
3082
}
3081
3083
return true;
3082
3084
} break;
@@ -3108,7 +3110,9 @@ bool Augmentation::updateDstMaskForGatherRaw(G4_INST *inst,
3108
3110
vISA_ASSERT(curEMBit <= 32, "Illegal mask channel");
3109
3111
}
3110
3112
}
3111
- curEMBit = (unsigned char)inst->getMaskOffset();
3113
+ if (curEMBit != NOMASK_BYTE) {
3114
+ curEMBit = (unsigned char)inst->getMaskOffset();
3115
+ }
3112
3116
}
3113
3117
return true;
3114
3118
}
@@ -3142,7 +3146,6 @@ bool Augmentation::updateDstMaskForGatherRaw(G4_INST *inst,
3142
3146
mask[i] = NOMASK_BYTE;
3143
3147
return true;
3144
3148
}
3145
- unsigned char curEMBit = (unsigned char)inst->getMaskOffset();
3146
3149
elemSize = msgDesc->is16BitReturn() ? 2 : 4;
3147
3150
unsigned warpNum =
3148
3151
respLength * kernel.numEltPerGRF<Type_UB>() / (execSize * elemSize);
@@ -3159,7 +3162,9 @@ bool Augmentation::updateDstMaskForGatherRaw(G4_INST *inst,
3159
3162
vISA_ASSERT(curEMBit <= 32, "Illegal mask channel");
3160
3163
}
3161
3164
}
3162
- curEMBit = (unsigned char)inst->getMaskOffset();
3165
+ if (curEMBit != NOMASK_BYTE) {
3166
+ curEMBit = (unsigned char)inst->getMaskOffset();
3167
+ }
3163
3168
}
3164
3169
return true;
3165
3170
}
0 commit comments