This avoids regressions on SNB due to the bank conflict mitigation
pass moving a VGRF-allocated barycentric vector to a misaligned
location, which would prevent the PLN instruction from being used.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
constrained[p.atom_of_reg(reg_of(inst->src[i]))] = true;
}
+ /* Preserve the original allocation of VGRFs used by the barycentric
+ * source of the LINTERP instruction on Gen6, since pair-aligned
+ * barycentrics allow the PLN instruction to be used.
+ */
+ if (v->devinfo->has_pln && v->devinfo->gen <= 6 &&
+ inst->opcode == FS_OPCODE_LINTERP)
+ constrained[p.atom_of_reg(reg_of(inst->src[0]))] = true;
+
/* The location of the Gen7 MRF hack registers is hard-coded in the
* rest of the compiler back-end. Don't attempt to move them around.
*/