Lines Matching defs:alu1
413 * This function detects cases where \p alu1 is a constant and \p alu2 is a
415 * an SSA value that is a \c nir_op_fneg applied to \p alu1 (and vice versa).
417 * This function does not detect the general case when \p alu1 and \p alu2 are
418 * SSA values that are the negations of each other (e.g., \p alu1 represents
426 nir_alu_srcs_negative_equal(const nir_alu_instr *alu1,
432 assert(nir_alu_instr_channel_used(alu1, src1, i) ==
436 if (nir_alu_type_get_base_type(nir_op_infos[alu1->op].input_types[src1]) == nir_type_float) {
437 assert(nir_op_infos[alu1->op].input_types[src1] ==
440 assert(nir_op_infos[alu1->op].input_types[src1] == nir_type_int);
445 if (alu1->src[src1].abs != alu2->src[src2].abs)
448 bool parity = alu1->src[src1].negate != alu2->src[src2].negate;
453 nir_src_as_const_value(alu1->src[src1].src);
468 if (nir_src_bit_size(alu1->src[src1].src) !=
472 const nir_alu_type full_type = nir_op_infos[alu1->op].input_types[src1] |
473 nir_src_bit_size(alu1->src[src1].src);
475 if (nir_alu_instr_channel_used(alu1, src1, i) &&
476 !nir_const_value_negative_equal(const1[alu1->src[src1].swizzle[i]],
487 nir_alu_instr *neg1 = get_neg_instr(alu1->src[src1].src);
496 alu1_actual_src = alu1->src[src1].src;
498 for (unsigned i = 0; i < nir_ssa_alu_instr_src_components(alu1, src1); i++)
519 for (unsigned i = 0; i < nir_ssa_alu_instr_src_components(alu1, src1); i++) {
520 if (alu1_swizzle[alu1->src[src1].swizzle[i]] !=
529 nir_alu_srcs_equal(const nir_alu_instr *alu1, const nir_alu_instr *alu2,
532 if (alu1->src[src1].abs != alu2->src[src2].abs ||
533 alu1->src[src1].negate != alu2->src[src2].negate)
536 for (unsigned i = 0; i < nir_ssa_alu_instr_src_components(alu1, src1); i++) {
537 if (alu1->src[src1].swizzle[i] != alu2->src[src2].swizzle[i])
541 return nir_srcs_equal(alu1->src[src1].src, alu2->src[src2].src);
560 nir_alu_instr *alu1 = nir_instr_as_alu(instr1);
563 if (alu1->op != alu2->op)
568 if (alu1->no_signed_wrap != alu2->no_signed_wrap)
571 if (alu1->no_unsigned_wrap != alu2->no_unsigned_wrap)
577 if (alu1->dest.dest.ssa.num_components != alu2->dest.dest.ssa.num_components)
580 if (alu1->dest.dest.ssa.bit_size != alu2->dest.dest.ssa.bit_size)
583 if (nir_op_infos[alu1->op].algebraic_properties & NIR_OP_IS_2SRC_COMMUTATIVE) {
584 if ((!nir_alu_srcs_equal(alu1, alu2, 0, 0) ||
585 !nir_alu_srcs_equal(alu1, alu2, 1, 1)) &&
586 (!nir_alu_srcs_equal(alu1, alu2, 0, 1) ||
587 !nir_alu_srcs_equal(alu1, alu2, 1, 0)))
590 for (unsigned i = 2; i < nir_op_infos[alu1->op].num_inputs; i++) {
591 if (!nir_alu_srcs_equal(alu1, alu2, i, i))
595 for (unsigned i = 0; i < nir_op_infos[alu1->op].num_inputs; i++) {
596 if (!nir_alu_srcs_equal(alu1, alu2, i, i))