Skip to content

Commit fc6d6c4

Browse files
bcheng0127igcbot
authored andcommitted
ACC update
ACC option update
1 parent b785f04 commit fc6d6c4

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

visa/G4_IR.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7026,9 +7026,18 @@ bool G4_INST::isSupportedAccDstType() const {
70267026
case Type_DF:
70277027
case Type_Q:
70287028
case Type_UQ:
7029+
case Type_BF:
7030+
return true;
70297031
case Type_D:
70307032
case Type_UD:
7031-
case Type_BF:
7033+
if (getExecSize() != builder.getNativeExecSize()) {
7034+
switch (opcode()) {
7035+
case G4_addc:
7036+
return false;
7037+
default:
7038+
return true;
7039+
}
7040+
}
70327041
return true;
70337042
default:
70347043
return false;

visa/Passes/AccSubstitution.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,13 @@ bool AccSubPass::isAccCandidate(G4_INST *inst, int &lastUse, bool &mustBeAcc0,
460460
return false;
461461
}
462462

463+
if (builder.usesStack() && (dst->getTopDcl() == kernel.fg.getFramePtrDcl() ||
464+
dst->getTopDcl() == kernel.fg.getStackPtrDcl() ||
465+
dst->getTopDcl() == kernel.fg.getStackPtrDcl() ||
466+
dst->getTopDcl() == kernel.fg.pseudoVCEDcl)) {
467+
return false;
468+
}
469+
463470
if (!IS_TYPE_FLOAT_FOR_ACC(dst->getType())) {
464471
isAllFloat = false;
465472
}

0 commit comments

Comments
 (0)