@@ -1177,12 +1177,12 @@ G4_InstSend *IR_Builder::Create_SplitSend_Inst_For_RTWrite(G4_Predicate *pred,
1177
1177
option, msgDesc, extDescOpnd);
1178
1178
}
1179
1179
1180
- // create a dcl for MRF, size in UD is given
1181
- G4_Declare* IR_Builder::Create_MRF_Dcl ( unsigned num_elt, G4_Type type )
1180
+ // create a declare for send payload
1181
+ G4_Declare* IR_Builder::createSendPayloadDcl ( unsigned num_elt, G4_Type type )
1182
1182
{
1183
1183
const char * name = getNameString (mem, 16 , " M%u" , ++num_general_dcl);
1184
- unsigned short numRow = ( num_elt * G4_Type_Table[type].byteSize - 1 ) / GENX_MRF_REG_SIZ + 1 ;
1185
- unsigned short numElt = ( numRow == 1 ) ? num_elt : (GENX_MRF_REG_SIZ /G4_Type_Table[type].byteSize );
1184
+ unsigned short numRow = ( num_elt * G4_Type_Table[type].byteSize - 1 ) / GENX_GRF_REG_SIZ + 1 ;
1185
+ unsigned short numElt = ( numRow == 1 ) ? num_elt : (GENX_GRF_REG_SIZ /G4_Type_Table[type].byteSize );
1186
1186
G4_Declare *dcl = createDeclareNoLookup (
1187
1187
name,
1188
1188
G4_GRF,
@@ -1191,7 +1191,7 @@ G4_Declare* IR_Builder::Create_MRF_Dcl( unsigned num_elt, G4_Type type )
1191
1191
type);
1192
1192
return dcl;
1193
1193
}
1194
- // create mov(8) mrf, r0
1194
+
1195
1195
void IR_Builder::Create_MOVR0_Inst ( G4_Declare* dcl, short regOff, short subregOff, bool use_nomask )
1196
1196
{
1197
1197
G4_DstRegRegion dst1 (
@@ -1273,8 +1273,8 @@ void IR_Builder::Create_MOV_Inst(
1273
1273
0 );
1274
1274
}
1275
1275
1276
- // create multiple MOV inst for send src --> MRF if there are more than 64 byte data in src .
1277
- // dcl: decl for MRF
1276
+ // send payload preparation .
1277
+ // dcl: decl for send payload
1278
1278
// num_dword: number of DW to send
1279
1279
// src_opnd: send src, its size may be several GRFs
1280
1280
void IR_Builder::Create_MOV_Send_Src_Inst (
@@ -1303,7 +1303,7 @@ void IR_Builder::Create_MOV_Send_Src_Inst(
1303
1303
if ( scalar_src && src_opnd->getType () != Type_UD ){
1304
1304
// change the type of dst dcl to src type
1305
1305
remained_dword = num_dword * ( G4_Type_Table[Type_UD].byteSize /G4_Type_Table[src_opnd->getType ()].byteSize );
1306
- dst_dcl = Create_MRF_Dcl (remained_dword, src_opnd->getType ());
1306
+ dst_dcl = createSendPayloadDcl (remained_dword, src_opnd->getType ());
1307
1307
dst_dcl->setAliasDeclare ( dcl, regoff * G4_GRF_REG_NBYTES + subregoff * G4_Type_Table[Type_UD].byteSize );
1308
1308
dst_regoff = 0 ;
1309
1309
dst_subregoff = 0 ;
@@ -1343,7 +1343,6 @@ void IR_Builder::Create_MOV_Send_Src_Inst(
1343
1343
{
1344
1344
if ( remained_dword >= 32 )
1345
1345
{
1346
- // mov(16) mrf src
1347
1346
execsize = 32 ;
1348
1347
}
1349
1348
else if ( remained_dword >= 16 )
@@ -1369,7 +1368,6 @@ void IR_Builder::Create_MOV_Send_Src_Inst(
1369
1368
{
1370
1369
if ( remained_dword >= 16 )
1371
1370
{
1372
- // mov(16) mrf src
1373
1371
execsize = 16 ;
1374
1372
}
1375
1373
else if ( remained_dword >= 8 )
@@ -1425,30 +1423,31 @@ void IR_Builder::Create_MOV_Send_Src_Inst(
1425
1423
true );
1426
1424
1427
1425
// update offset in decl
1428
- if ( remained_dword >= execsize ) {
1426
+ if ( remained_dword >= execsize) {
1429
1427
remained_dword -= execsize;
1430
- if ( execsize * dst_dcl->getElemSize () == 2 * G4_GRF_REG_NBYTES ){
1431
- // mov(16) mrf src
1428
+ if (execsize * dst_dcl->getElemSize () == 2 * G4_GRF_REG_NBYTES) {
1432
1429
dst_regoff += 2 ;
1433
- if ( !scalar_src ) {
1430
+ if ( !scalar_src) {
1434
1431
src_regoff += 2 ;
1435
1432
}
1436
- }else if ( execsize * dst_dcl->getElemSize () == G4_GRF_REG_NBYTES ){
1433
+ }
1434
+ else if (execsize * dst_dcl->getElemSize () == G4_GRF_REG_NBYTES) {
1437
1435
dst_regoff += 1 ;
1438
- if ( !scalar_src ) {
1436
+ if ( !scalar_src) {
1439
1437
src_regoff += 1 ;
1440
1438
}
1441
- }else {
1439
+ }
1440
+ else {
1442
1441
dst_subregoff += execsize;
1443
- if ( dst_subregoff > (G4_GRF_REG_NBYTES/ dst_dcl->getElemSize ()) ) {
1442
+ if ( dst_subregoff > (G4_GRF_REG_NBYTES / dst_dcl->getElemSize ())) {
1444
1443
dst_regoff++;
1445
- dst_subregoff -= G4_GRF_REG_NBYTES/ dst_dcl->getElemSize ();
1444
+ dst_subregoff -= G4_GRF_REG_NBYTES / dst_dcl->getElemSize ();
1446
1445
}
1447
- if ( !scalar_src ) {
1446
+ if ( !scalar_src) {
1448
1447
src_subregoff += execsize;
1449
- if ( src_subregoff > (short )(G4_GRF_REG_NBYTES/ G4_Type_Table[Type_UD].byteSize ) ) {
1448
+ if ( src_subregoff > (short )(G4_GRF_REG_NBYTES / G4_Type_Table[Type_UD].byteSize )) {
1450
1449
src_regoff++;
1451
- src_subregoff -= G4_GRF_REG_NBYTES/ G4_Type_Table[Type_UD].byteSize ;
1450
+ src_subregoff -= G4_GRF_REG_NBYTES / G4_Type_Table[Type_UD].byteSize ;
1452
1451
}
1453
1452
}
1454
1453
}
0 commit comments