Lines Matching defs:ty
38 define internal fastcc {ty} @test({inputs}) noinline nounwind {{
41 ret {ty} {last_name}
55 %v = call fastcc {ty} @test({inputs})
69 %v.{lane} = extractelement {ty} %v, i32 {lane}
114 def __init__(self, name, ty, value=None):
115 self.ty = ty # Type
122 def __init__(self, name, ty, op0, op1, mask):
123 Value.__init__(self, name, ty)
139 " {name} = shufflevector {ty} {op0}, {ty} {op1}, <{num} x i32> {mask}\n"
142 def __init__(self, name, ty, op0, op1, mask):
143 Instruction.__init__(self, "%shuf" + name, ty, op0, op1, mask)
152 ty=self.ty.dump(),
155 num=self.ty.elt_num,
168 if index < self.ty.elt_num and index >= 0:
170 elif index >= self.ty.elt_num:
171 index = index % self.ty.elt_num
182 sel_template = " {name} = select <{num} x i1> {mask}, {ty} {op0}, {ty} {op1}\n"
184 def __init__(self, name, ty, op0, op1, mask):
185 Instruction.__init__(self, "%sel" + name, ty, op0, op1, mask)
194 ty=self.ty.dump(),
197 num=self.ty.elt_num,
222 def gen_inputs(ty, num):
226 for j in range(ty.elt_num):
227 if ty.is_float:
228 inp.append(float(i * ty.elt_num + j))
230 inp.append((i * ty.elt_num + j) % (1 << ty.elt_width))
231 inputs.append(Value("%inp" + str(i), ty, inp))
239 def get_random_type(ty, num_elts):
240 if ty is not None:
241 if ty == "i8":
244 elif ty == "i16":
247 elif ty == "i32":
250 elif ty == "i64":
253 elif ty == "f32":
256 elif ty == "f64":
266 if ty is None:
280 def gen_shuf_mask(ty):
282 for i in range(ty.elt_num):
283 if SHUF_UNDEF_POS / ty.elt_num > random.random():
286 mask.append(random.randint(0, ty.elt_num * 2 - 1))
293 def gen_sel_mask(ty):
295 for i in range(ty.elt_num):
296 if SEL_UNDEF_POS / ty.elt_num > random.random():
305 def gen_insts(inputs, ty):
306 int_zero_init = Value("zeroinitializer", ty, [0] * ty.elt_num)
307 float_zero_init = Value("zeroinitializer", ty, [0.0] * ty.elt_num)
318 shuf_mask = gen_shuf_mask(ty)
319 shuf_inst = ShufInstr(str(name_idx), ty, op0, op1, shuf_mask)
331 op2 = float_zero_init if ty.is_float else int_zero_init
333 select_mask = gen_sel_mask(ty)
334 select_inst = SelectInstr(str(name_idx), ty, shuf_inst, op2, select_mask)
395 ty = get_random_type(args.type, args.num_elts)
396 inputs = gen_inputs(ty, random.randint(args.min_num_inputs, args.max_num_inputs))
397 inputs_str = (", ").join([inp.ty.dump() + " " + inp.name for inp in inputs])
400 insts = gen_insts(inputs, ty)
409 ty=ty.dump(), inputs=inputs_str, instructions=insts_str, last_name=res.name
419 scalar_ty = ty.get_scalar_type()
421 i_f = "f" if ty.is_float else "i"
422 ordered = "o" if ty.is_float else ""
429 ty=ty.dump(),
449 inputs = ", ".join([ty.dump() + " <" + inp + ">" for inp in inputs_values])
451 print(main_template.format(ty=ty.dump(), inputs=inputs, check_die=check_die))