Lines Matching refs:val
108 def create(val):
109 if isinstance(val, tuple):
110 return SearchExpression(val)
112 assert(isinstance(val, SearchExpression))
113 return val
123 def create(val, name_base, varset, algebraic_pass):
124 if isinstance(val, bytes):
125 val = val.decode('utf-8')
127 if isinstance(val, tuple) or isinstance(val, SearchExpression):
128 return Expression(val, name_base, varset, algebraic_pass)
129 elif isinstance(val, Expression):
130 return val
131 elif isinstance(val, str):
132 return Variable(val, name_base, varset, algebraic_pass)
133 elif isinstance(val, (bool, float, int)):
134 return Constant(val, name_base)
136 def __init__(self, val, name, type_str):
137 self.in_val = str(val)
197 __template = mako.template.Template(""" { .${val.type_str} = {
198 { ${val.type_enum}, ${val.c_bit_size} },
199 % if isinstance(val, Constant):
200 ${val.type()}, { ${val.hex()} /* ${val.value} */ },
201 % elif isinstance(val, Variable):
202 ${val.index}, /* ${val.var_name} */
203 ${'true' if val.is_constant else 'false'},
204 ${val.type() or 'nir_type_invalid' },
205 ${val.cond_index},
206 ${val.swizzle()},
207 % elif isinstance(val, Expression):
208 ${'true' if val.inexact else 'false'},
209 ${'true' if val.exact else 'false'},
210 ${'true' if val.ignore_exact else 'false'},
211 ${val.c_opcode()},
212 ${val.comm_expr_idx}, ${val.comm_exprs},
213 { ${', '.join(src.array_index for src in val.sources)} },
214 ${val.cond_index},
220 struct_init = self.__template.render(val=self,
239 def __init__(self, val, name):
240 Value.__init__(self, val, name, "constant")
242 if isinstance(val, (str)):
243 m = _constant_re.match(val)
247 self.value = val
294 def __init__(self, val, name, varset, algebraic_pass):
295 Value.__init__(self, val, name, "variable")
297 m = _var_name_re.match(val)
299 "Malformed variable name \"{}\".".format(val)
614 def merge_variables(self, val):
621 if isinstance(val, Variable):
622 if self._var_classes[val.index] is None:
623 self._var_classes[val.index] = val
625 other = self._var_classes[val.index]
626 self.unify_bit_size(other, val,
630 val.var_name, other_bit_size, bit_size))
631 elif isinstance(val, Expression):
632 for src in val.sources:
635 def validate_value(self, val):
644 if not isinstance(val, Expression):
650 # len(val.sources) check.
651 if val.opcode in conv_opcode_types:
652 assert len(val.sources) == 1, \
654 val, len(val.sources))
655 self.validate_value(val.sources[0])
658 nir_op = opcodes[val.opcode]
659 assert len(val.sources) == nir_op.num_inputs, \
661 val, len(val.sources), nir_op.num_inputs)
663 for src in val.sources:
672 for src_type, src in zip(nir_op.input_types, val.sources):
684 first_unsized_src, val, first_unsized_src_bit_size,
693 src_bit_size, val))
712 self.unify_bit_size(val, first_unsized_src,
716 val, val_bit_size, first_unsized_src, src_bit_size))
718 self.unify_bit_size(val, first_unsized_src,
723 val, val_bit_size, first_unsized_src, src_bit_size))
725 self.unify_bit_size(val, dst_type_bits,
729 val, dst_bit_size, nir_op.name, dst_type_bits))
731 def validate_replace(self, val, search):
732 bit_size = val.get_bit_size()
737 'somewhere, or the search expression.'.format(val)
739 if isinstance(val, Expression):
740 for src in val.sources: