Lines Matching defs:expr
219 /* Array/record dereferences have subtrees that are not part of the expr
228 ir_expression *expr = ir->as_expression();
229 if (!expr)
236 if (expr->type->is_matrix() ||
237 expr->operands[0]->type->is_matrix() ||
238 (expr->operands[1] && expr->operands[1]->type->is_matrix())) {
243 if (ird->type != NULL && ird->type != expr->type) {
247 ird->type = expr->type;
250 if (is_reduction_operation(expr->operation)) {
251 if (ird->operation != 0 && ird->operation != expr->operation)
253 ird->operation = expr->operation;
260 handle_expression(ir_expression *expr)
269 visit_tree(expr, is_reduction, (void *)&ird);
273 ir_expression pseudo_root = ir_expression(ir_binop_add, &z, expr);
278 expr = (ir_expression *)pseudo_root.operands[1];
280 return expr;
286 ir_expression *expr = ir->as_expression();
287 if (!expr)
291 glsl_type::get_instance(expr->type->base_type,
292 MAX2(expr->operands[0]->type->vector_elements,
293 expr->operands[1]->type->vector_elements),
296 expr->type = new_type;
305 ir_expression *expr = (*rvalue)->as_expression();
306 if (!expr || !is_reduction_operation(expr->operation))
309 ir_rvalue *new_rvalue = handle_expression(expr);