Lines Matching defs:expr
53 match_expression(const nir_algebraic_table *table, const nir_search_expression *expr, nir_alu_instr *instr,
394 match_expression(const nir_algebraic_table *table, const nir_search_expression *expr, nir_alu_instr *instr,
398 if (expr->cond_index != -1 && !table->expression_cond[expr->cond_index](instr))
401 if (!nir_op_matches_search_op(instr->op, expr->opcode))
406 if (expr->value.bit_size > 0 &&
407 instr->dest.dest.ssa.bit_size != expr->value.bit_size)
410 state->inexact_match = expr->inexact || state->inexact_match;
411 state->has_exact_alu = (instr->exact && !expr->ignore_exact) || state->has_exact_alu;
436 (expr->comm_expr_idx >= 0 &&
437 expr->comm_expr_idx < NIR_SEARCH_MAX_COMM_OPS) ?
438 ((state->comm_op_direction >> expr->comm_expr_idx) & 1) : 0;
445 if (!match_value(table, &state->table->values[expr->srcs[i]].value, instr,
476 const nir_search_expression *expr = nir_search_value_as_expression(value);
478 nir_op op = nir_op_for_search_op(expr->opcode, dst_bit_size);
494 alu->exact = state->has_exact_alu || expr->exact;
503 alu->src[i] = construct_value(build, &state->table->values[expr->srcs[i]].value,
614 const nir_search_expression *expr = nir_search_value_as_expression(val);
616 if (expr->inexact)
618 switch (expr->opcode) {
630 fprintf(stderr, "%s", nir_op_infos[expr->opcode].name);
634 if (expr->opcode <= nir_last_opcode)
635 num_srcs = nir_op_infos[expr->opcode].num_inputs;
639 dump_value(table, &table->values[expr->srcs[i]].value);