i965/vec4: teach cmod propagation about different execution sizes

We can't propagate the conditional modifier from one instruction to
another of a different execution size / group, since that would change
the channels affected by the conditional.

Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Iago Toral Quiroga 2016-09-15 11:30:32 +02:00 committed by Samuel Iglesias Gonsálvez
parent 8f39b3668a
commit 5356d52f31

View file

@ -76,7 +76,9 @@ opt_cmod_propagation_local(bblock_t *block)
scan_inst->dst.writemask != WRITEMASK_XYZW) ||
(scan_inst->dst.writemask == WRITEMASK_XYZW &&
inst->src[0].swizzle != BRW_SWIZZLE_XYZW) ||
(inst->dst.writemask & ~scan_inst->dst.writemask) != 0) {
(inst->dst.writemask & ~scan_inst->dst.writemask) != 0 ||
scan_inst->exec_size != inst->exec_size ||
scan_inst->group != inst->group) {
break;
}