Lines Matching defs:expr

80    ir_rvalue *prune_expression(ir_expression *expr, minmax_range baserange);
333 ir_expression *expr = rval->as_expression();
334 if (expr && (expr->operation == ir_binop_min ||
335 expr->operation == ir_binop_max)) {
336 minmax_range r0 = get_range(expr->operands[0]);
337 minmax_range r1 = get_range(expr->operands[1]);
338 return combine_range(r0, r1, expr->operation == ir_binop_min);
357 ir_minmax_visitor::prune_expression(ir_expression *expr, minmax_range baserange)
359 assert(expr->operation == ir_binop_min ||
360 expr->operation == ir_binop_max);
362 bool ismin = expr->operation == ir_binop_min;
382 limits[i] = get_range(expr->operands[i]);
430 ir_expression *op_expr = expr->operands[1 - i]->as_expression();
436 return expr->operands[1 - i];
448 ir_constant *a = expr->operands[0]->as_constant();
449 ir_constant *b = expr->operands[1]->as_constant();
461 ir_expression *op_expr = expr->operands[i]->as_expression();
472 expr->operands[i] = prune_expression(op_expr, base);
482 ir_constant *a = expr->operands[0]->as_constant();
483 ir_constant *b = expr->operands[1]->as_constant();
487 return expr;
491 swizzle_if_required(ir_expression *expr, ir_rvalue *rval)
493 if (expr->type->is_vector() && rval->type->is_scalar()) {
494 return swizzle(rval, SWIZZLE_XXXX, expr->type->vector_elements);
506 ir_expression *expr = (*rvalue)->as_expression();
507 if (!expr || (expr->operation != ir_binop_min &&
508 expr->operation != ir_binop_max))
511 ir_rvalue *new_rvalue = prune_expression(expr, minmax_range());
518 *rvalue = swizzle_if_required(expr, new_rvalue);