Instructions with no barrier_class can move wrt. an EVERYTHING barrier.
Signed-off-by: Rob Clark <robdclark@gmail.com>
* make accesses to unrelated objects not depend on each other (at
* least as long as not declared coherent)
*/
- if ((instr->barrier_class & IR3_BARRIER_EVERYTHING) ||
- (prior->barrier_class & IR3_BARRIER_EVERYTHING))
+ if (((instr->barrier_class & IR3_BARRIER_EVERYTHING) && prior->barrier_class) ||
+ ((prior->barrier_class & IR3_BARRIER_EVERYTHING) && instr->barrier_class))
return true;
return !!(instr->barrier_class & prior->barrier_conflict);
}