Lines Matching refs:expr
228 ir_expression *expr = ir->as_expression(); in is_reduction() local
229 if (!expr) in is_reduction()
236 if (expr->type->is_matrix() || in is_reduction()
237 expr->operands[0]->type->is_matrix() || in is_reduction()
238 (expr->operands[1] && expr->operands[1]->type->is_matrix())) { in is_reduction()
243 if (ird->type != NULL && ird->type != expr->type) { in is_reduction()
247 ird->type = expr->type; in is_reduction()
250 if (is_reduction_operation(expr->operation)) { in is_reduction()
251 if (ird->operation != 0 && ird->operation != expr->operation) in is_reduction()
253 ird->operation = expr->operation; in is_reduction()
260 handle_expression(ir_expression *expr) in handle_expression() argument
269 visit_tree(expr, is_reduction, (void *)&ird); in handle_expression()
273 ir_expression pseudo_root = ir_expression(ir_binop_add, &z, expr); in handle_expression()
278 expr = (ir_expression *)pseudo_root.operands[1]; in handle_expression()
280 return expr; in handle_expression()
286 ir_expression *expr = ir->as_expression(); in update_types() local
287 if (!expr) in update_types()
291 glsl_type::get_instance(expr->type->base_type, in update_types()
292 MAX2(expr->operands[0]->type->vector_elements, in update_types()
293 expr->operands[1]->type->vector_elements), in update_types()
296 expr->type = new_type; in update_types()
305 ir_expression *expr = (*rvalue)->as_expression(); in handle_rvalue() local
306 if (!expr || !is_reduction_operation(expr->operation)) in handle_rvalue()
309 ir_rvalue *new_rvalue = handle_expression(expr); in handle_rvalue()