summaryrefslogtreecommitdiffstats
path: root/src/compiler/nir/nir_algebraic.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/nir/nir_algebraic.py')
-rw-r--r--src/compiler/nir/nir_algebraic.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/compiler/nir/nir_algebraic.py b/src/compiler/nir/nir_algebraic.py
index 34ea2ba9e68..bcefa3372b3 100644
--- a/src/compiler/nir/nir_algebraic.py
+++ b/src/compiler/nir/nir_algebraic.py
@@ -352,8 +352,12 @@ class BitSizeValidator(object):
if var_class == 0:
self._var_classes[var.index] = bit_class
else:
- canon_class = self._class_relation.get_canonical(var_class)
- assert canon_class < 0 or canon_class == bit_class
+ canon_bit_class = self._class_relation.get_canonical(var_class)
+ canon_var_class = self._class_relation.get_canonical(bit_class)
+ assert canon_var_class < 0 or canon_bit_class < 0 or \
+ canon_var_class == canon_bit_class, \
+ 'Variable {0} cannot be both {1}-bit and {2}-bit' \
+ .format(str(var), bit_class, var_class)
var_class = self._class_relation.add_equiv(var_class, bit_class)
self._var_classes[var.index] = var_class