because every taken branch causes fetch to be discarded, we move the call
to the WF to avoid to have to call it from each and every branch instruction
type.
// Rpc and execution mask remain the same
w->pc(getTargetPc());
}
- w->discardFetch();
}
class BrnDirectInst : public BrnInstBase<LabelOperand>
w->pushToReconvergenceStack(true_pc, rpc, true_mask);
}
assert(w->pc() != curr_pc);
- w->discardFetch();
}
// Rpc and execution mask remain the same
w->pc(getTargetPc());
}
- w->discardFetch();
}
class BrDirectInst : public BrInstBase<LabelOperand>
} else {
instructionBuffer.pop_front();
}
+ } else {
+ discardFetch();
}
if (computeUnit->shader->hsail_mode==Shader::SIMT) {