ir_to_mesa: Add ir_unop_f2i -> OPCODE_TRUNC.
This commit is contained in:
+4
-1
@@ -365,9 +365,12 @@ ir_to_mesa_visitor::visit(ir_expression *ir)
|
||||
this->result = this->create_tree(MB_TERM_rsq_vec4, ir, op[0], op[1]);
|
||||
break;
|
||||
case ir_unop_i2f:
|
||||
/* Mesa IR lacks types, ints are stored as floats. */
|
||||
/* Mesa IR lacks types, ints are stored as truncated floats. */
|
||||
this->result = op[0];
|
||||
break;
|
||||
case ir_unop_f2i:
|
||||
this->result = this->create_tree(MB_TERM_trunc_vec4, ir, op[0], NULL);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -62,6 +62,7 @@
|
||||
%term sqrt_vec4
|
||||
%term rsq_vec4
|
||||
%term swizzle_vec4
|
||||
%term trunc_vec4
|
||||
|
||||
# Each tree will produce stmt. Currently, the only production for
|
||||
# stmt is from an assign rule -- every statement tree from
|
||||
@@ -245,4 +246,11 @@ vec4: log2_vec4(vec4) 1
|
||||
tree->left->src_reg);
|
||||
}
|
||||
|
||||
vec4: trunc_vec4(vec4) 1
|
||||
{
|
||||
ir_to_mesa_emit_scalar_op1(tree, OPCODE_TRUNC,
|
||||
tree->dst_reg,
|
||||
tree->left->src_reg);
|
||||
}
|
||||
|
||||
%%
|
||||
|
||||
Reference in New Issue
Block a user