Lines Matching refs:ty
114 def __init__(self, name, ty, value = None): argument
115 self.ty = ty # Type
122 def __init__(self, name, ty, op0, op1, mask): argument
123 Value.__init__(self, name, ty)
138 def __init__(self, name, ty, op0, op1, mask): argument
139 Instruction.__init__(self, '%shuf' + name, ty, op0, op1, mask)
144 return self.shuf_template.format(name = self.name, ty = self.ty.dump(), op0 = self.op0.name,
145 op1 = self.op1.name, num = self.ty.elt_num, mask = str_mask)
156 if index < self.ty.elt_num and index >= 0:
158 elif index >= self.ty.elt_num:
159 index = index % self.ty.elt_num
172 def __init__(self, name, ty, op0, op1, mask): argument
173 Instruction.__init__(self, '%sel' + name, ty, op0, op1, mask)
178 return self.sel_template.format(name = self.name, ty = self.ty.dump(), op0 = self.op0.name,
179 op1 = self.op1.name, num = self.ty.elt_num, mask = str_mask)
202 def gen_inputs(ty, num): argument
206 for j in range(ty.elt_num):
207 if ty.is_float:
208 inp.append(float(i*ty.elt_num + j))
210 inp.append((i*ty.elt_num + j) % (1 << ty.elt_width))
211 inputs.append(Value('%inp' + str(i), ty, inp))
219 def get_random_type(ty, num_elts): argument
220 if ty != None:
221 if ty == 'i8':
224 elif ty == 'i16':
227 elif ty == 'i32':
230 elif ty == 'i64':
233 elif ty == 'f32':
236 elif ty == 'f64':
246 if ty == None:
260 def gen_shuf_mask(ty): argument
262 for i in range(ty.elt_num):
263 if SHUF_UNDEF_POS/ty.elt_num > random.random():
266 mask.append(random.randint(0, ty.elt_num*2 - 1))
273 def gen_sel_mask(ty): argument
275 for i in range(ty.elt_num):
276 if SEL_UNDEF_POS/ty.elt_num > random.random():
284 def gen_insts(inputs, ty): argument
285 int_zero_init = Value('zeroinitializer', ty, [0]*ty.elt_num)
286 float_zero_init = Value('zeroinitializer', ty, [0.0]*ty.elt_num)
297 shuf_mask = gen_shuf_mask(ty)
298 shuf_inst = ShufInstr(str(name_idx), ty, op0, op1, shuf_mask)
310 op2 = float_zero_init if ty.is_float else int_zero_init
312 select_mask = gen_sel_mask(ty)
313 select_inst = SelectInstr(str(name_idx), ty, shuf_inst, op2, select_mask)
354 ty = get_random_type(args.type, args.num_elts)
355 inputs = gen_inputs(ty, random.randint(args.min_num_inputs, args.max_num_inputs))
356 inputs_str = (', ').join([inp.ty.dump() + ' ' + inp.name for inp in inputs])
359 insts = gen_insts(inputs, ty)
366 print(test_template.format(ty = ty.dump(), inputs = inputs_str,
376 scalar_ty = ty.get_scalar_type()
378 i_f = 'f' if ty.is_float else 'i'
379 ordered = 'o' if ty.is_float else ''
384 ty = ty.dump(), i_f = i_f, scalar_ty = scalar_ty.dump(),
397 inputs = ', '.join([ty.dump() + ' <' + inp + '>' for inp in inputs_values])
399 print(main_template.format(ty = ty.dump(), inputs = inputs, check_die = check_die))