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;
}
%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
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);
+}
+
%%