Home | History | Annotate | Download | only in glsl

Lines Matching refs:ir

31 #include "ir.h"
53 ir_rvalue *handle_expression(ir_expression *ir);
72 is_vec_zero(ir_constant *ir)
74 return (ir == NULL) ? false : ir->is_zero();
78 is_vec_one(ir_constant *ir)
80 return (ir == NULL) ? false : ir->is_one();
84 update_type(ir_expression *ir)
86 if (ir->operands[0]->type->is_vector())
87 ir->type = ir->operands[0]->type;
89 ir->type = ir->operands[1]->type;
177 ir_algebraic_visitor::handle_expression(ir_expression *ir)
184 assert(ir->get_num_operands() <= 2);
185 for (i = 0; i < ir->get_num_operands(); i++) {
186 if (ir->operands[i]->type->is_matrix())
187 return ir;
189 op_const[i] = ir->operands[i]->constant_expression_value();
190 op_expr[i] = ir->operands[i]->as_expression();
194 this->mem_ctx = hieralloc_parent(ir);
196 switch (ir->operation) {
222 ir->type,
233 return swizzle_if_required(ir, ir->operands[1]);
237 return swizzle_if_required(ir, ir->operands[0]);
244 reassociate_constant(ir, 0, op_const[0],
245 ir->operands[1]->as_expression());
247 reassociate_constant(ir, 1, op_const[1],
248 ir->operands[0]->as_expression());
255 ir->operands[1]->type,
256 ir->operands[1],
258 return swizzle_if_required(ir, temp);
262 return swizzle_if_required(ir, ir->operands[0]);
269 return swizzle_if_required(ir, ir->operands[1]);
273 return swizzle_if_required(ir, ir->operands[0]);
278 return ir_constant::zero(ir, ir->type);
285 reassociate_constant(ir, 0, op_const[0],
286 ir->operands[1]->as_expression());
288 reassociate_constant(ir, 1, op_const[1],
289 ir->operands[0]->as_expression());
294 if (is_vec_one(op_const[0]) && ir->type->base_type == GLSL_TYPE_FLOAT) {
297 ir->operands[1]->type,
298 ir->operands[1],
300 return swizzle_if_required(ir, temp);
304 return swizzle_if_required(ir, ir->operands[0]);
312 return ir->operands[1];
315 return ir->operands[0];
318 return ir_constant::zero(mem_ctx, ir->type);
326 return ir->operands[1];
329 return ir->operands[0];
332 return new(mem_ctx) ir_expression(ir_unop_logic_not, ir->type,
333 ir->operands[1], NULL);
336 return new(mem_ctx) ir_expression(ir_unop_logic_not, ir->type,
337 ir->operands[0], NULL);
345 return ir->operands[1];
348 return ir->operands[0];
356 return new(mem_ctx) ir_constant(ir->type, &data);
378 return swizzle_if_required(ir, temp);
387 return ir;