Lines Matching defs:instr

36 is_pos_power_of_two(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
41 if (!nir_src_is_const(instr->src[src].src))
45 nir_alu_type type = nir_op_infos[instr->op].input_types[src];
48 int64_t val = nir_src_comp_as_int(instr->src[src].src, swizzle[i]);
54 uint64_t val = nir_src_comp_as_uint(instr->src[src].src, swizzle[i]);
68 is_neg_power_of_two(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
73 if (!nir_src_is_const(instr->src[src].src))
76 int64_t int_min = u_intN_min(instr->src[src].src.ssa->bit_size);
79 nir_alu_type type = nir_op_infos[instr->op].input_types[src];
82 int64_t val = nir_src_comp_as_int(instr->src[src].src, swizzle[i]);
97 is_bitcount2(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
102 if (!nir_src_is_const(instr->src[src].src))
106 uint64_t val = nir_src_comp_as_uint(instr->src[src].src, swizzle[i]);
117 const nir_alu_instr *instr, \
122 if (!nir_src_is_const(instr->src[src].src)) \
126 uint64_t val = nir_src_comp_as_uint(instr->src[src].src, swizzle[i]); \
142 is_zero_to_one(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
147 if (!nir_src_is_const(instr->src[src].src))
151 nir_alu_type type = nir_op_infos[instr->op].input_types[src];
154 double val = nir_src_comp_as_float(instr->src[src].src, swizzle[i]);
174 is_gt_0_and_lt_1(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
179 if (!nir_src_is_const(instr->src[src].src))
183 nir_alu_type type = nir_op_infos[instr->op].input_types[src];
186 double val = nir_src_comp_as_float(instr->src[src].src, swizzle[i]);
200 is_not_const_zero(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
204 if (nir_src_as_const_value(instr->src[src].src) == NULL)
208 nir_alu_type type = nir_op_infos[instr->op].input_types[src];
211 if (nir_src_comp_as_float(instr->src[src].src, swizzle[i]) == 0.0)
217 if (nir_src_comp_as_uint(instr->src[src].src, swizzle[i]) == 0)
230 is_ult_0xfffc07fc(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
235 if (!nir_src_is_const(instr->src[src].src))
240 nir_src_comp_as_uint(instr->src[src].src, swizzle[i]);
251 is_first_5_bits_uge_2(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
256 if (!nir_src_is_const(instr->src[src].src))
261 nir_src_comp_as_uint(instr->src[src].src, swizzle[i]);
271 is_not_const(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
275 return !nir_src_is_const(instr->src[src].src);
279 is_not_fmul(struct hash_table *ht, const nir_alu_instr *instr, unsigned src,
283 nir_src_as_alu_instr(instr->src[src].src);
295 is_fmul(struct hash_table *ht, const nir_alu_instr *instr, unsigned src,
299 nir_src_as_alu_instr(instr->src[src].src);
311 is_fsign(const nir_alu_instr *instr, unsigned src,
315 nir_src_as_alu_instr(instr->src[src].src);
327 is_not_const_and_not_fsign(struct hash_table *ht, const nir_alu_instr *instr,
331 return is_not_const(ht, instr, src, num_components, swizzle) &&
332 !is_fsign(instr, src, num_components, swizzle);
336 is_used_once(const nir_alu_instr *instr)
338 bool zero_if_use = list_is_empty(&instr->dest.dest.ssa.if_uses);
339 bool zero_use = list_is_empty(&instr->dest.dest.ssa.uses);
344 if (!zero_if_use && list_is_singular(&instr->dest.dest.ssa.uses))
347 if (!zero_use && list_is_singular(&instr->dest.dest.ssa.if_uses))
350 if (!list_is_singular(&instr->dest.dest.ssa.if_uses) &&
351 !list_is_singular(&instr->dest.dest.ssa.uses))
358 is_used_by_if(const nir_alu_instr *instr)
360 return !list_is_empty(&instr->dest.dest.ssa.if_uses);
364 is_not_used_by_if(const nir_alu_instr *instr)
366 return list_is_empty(&instr->dest.dest.ssa.if_uses);
370 is_used_by_non_fsat(const nir_alu_instr *instr)
372 nir_foreach_use(src, &instr->dest.dest.ssa) {
380 assert(instr != user_alu);
389 is_only_used_as_float(const nir_alu_instr *instr)
391 nir_foreach_use(src, &instr->dest.dest.ssa) {
397 assert(instr != user_alu);
409 only_lower_8_bits_used(const nir_alu_instr *instr)
411 return (nir_ssa_def_bits_used(&instr->dest.dest.ssa) & ~0xffull) == 0;
415 only_lower_16_bits_used(const nir_alu_instr *instr)
417 return (nir_ssa_def_bits_used(&instr->dest.dest.ssa) & ~0xffffull) == 0;
426 is_upper_half_zero(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
430 if (nir_src_as_const_value(instr->src[src].src) == NULL)
434 unsigned half_bit_size = nir_src_bit_size(instr->src[src].src) / 2;
436 if ((nir_src_comp_as_uint(instr->src[src].src,
451 is_lower_half_zero(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
455 if (nir_src_as_const_value(instr->src[src].src) == NULL)
460 (1 << (nir_src_bit_size(instr->src[src].src) / 2)) - 1;
461 if ((nir_src_comp_as_int(instr->src[src].src, swizzle[i]) & low_bits) != 0)
469 no_signed_wrap(const nir_alu_instr *instr)
471 return instr->no_signed_wrap;
475 no_unsigned_wrap(const nir_alu_instr *instr)
477 return instr->no_unsigned_wrap;
481 is_integral(struct hash_table *ht, const nir_alu_instr *instr, unsigned src,
484 const struct ssa_result_range r = nir_analyze_range(ht, instr, src);
493 is_finite(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
497 const struct ssa_result_range v = nir_analyze_range(ht, instr, src);
503 is_finite_not_zero(UNUSED struct hash_table *ht, const nir_alu_instr *instr,
507 const struct ssa_result_range v = nir_analyze_range(ht, instr, src);
516 is_ ## r (struct hash_table *ht, const nir_alu_instr *instr, \
520 const struct ssa_result_range v = nir_analyze_range(ht, instr, src); \
525 is_a_number_ ## r (struct hash_table *ht, const nir_alu_instr *instr, \
529 const struct ssa_result_range v = nir_analyze_range(ht, instr, src); \
540 is_not_negative(struct hash_table *ht, const nir_alu_instr *instr, unsigned src,
543 const struct ssa_result_range v = nir_analyze_range(ht, instr, src);
548 is_a_number_not_negative(struct hash_table *ht, const nir_alu_instr *instr,
552 const struct ssa_result_range v = nir_analyze_range(ht, instr, src);
559 is_not_positive(struct hash_table *ht, const nir_alu_instr *instr, unsigned src,
562 const struct ssa_result_range v = nir_analyze_range(ht, instr, src);
567 is_a_number_not_positive(struct hash_table *ht, const nir_alu_instr *instr,
571 const struct ssa_result_range v = nir_analyze_range(ht, instr, src);
577 is_not_zero(struct hash_table *ht, const nir_alu_instr *instr, unsigned src,
580 const struct ssa_result_range v = nir_analyze_range(ht, instr, src);
585 is_a_number_not_zero(struct hash_table *ht, const nir_alu_instr *instr,
589 const struct ssa_result_range v = nir_analyze_range(ht, instr, src);
595 is_a_number(struct hash_table *ht, const nir_alu_instr *instr, unsigned src,
598 const struct ssa_result_range v = nir_analyze_range(ht, instr, src);