Skip to content

Commit 19010e7

Browse files
weiyu-chensys_zuul
authored andcommitted
No source modifier for DWord integer mad.
Change-Id: I36936f04a7d04be2df2a7f83051cb7d634ffbb99
1 parent 6d19a09 commit 19010e7

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

visa/HWConformity.cpp

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3434,16 +3434,29 @@ bool HWConformity::isGoodAlign1TernarySrc(G4_INST* inst, int srcPos, bool canBeI
34343434
return false;
34353435
}
34363436

3437-
if (inst->opcode() == G4_pseudo_mad && isSrc2)
3437+
// mad specific checks
3438+
if (inst->opcode() == G4_pseudo_mad)
34383439
{
3439-
if (IS_DTYPE(src->getType()))
3440+
if (isSrc2)
34403441
{
3441-
return false;
3442-
}
3442+
if (IS_DTYPE(src->getType()))
3443+
{
3444+
return false;
3445+
}
34433446

3444-
if (builder.noSrc2Regioning() && IS_BTYPE(src->getType()))
3447+
if (builder.noSrc2Regioning() && IS_BTYPE(src->getType()))
3448+
{
3449+
return false;
3450+
}
3451+
}
3452+
else if (srcPos == 1)
34453453
{
3446-
return false;
3454+
if (IS_DTYPE(src->getType()) && src->isSrcRegRegion() &&
3455+
src->asSrcRegRegion()->getModifier() != Mod_src_undef)
3456+
{
3457+
// no source modifier for DW multiply
3458+
return false;
3459+
}
34473460
}
34483461
}
34493462

@@ -3465,7 +3478,6 @@ bool HWConformity::isGoodAlign1TernarySrc(G4_INST* inst, int srcPos, bool canBeI
34653478
}
34663479
else if (src->isSrcRegRegion())
34673480
{
3468-
34693481
if (src->asSrcRegRegion()->getRegAccess() != Direct)
34703482
{
34713483
return false;

0 commit comments

Comments
 (0)