glsl/ir: Add builder support for functions with double floats
authorDave Airlie <airlied@gmail.com>
Thu, 5 Feb 2015 09:54:39 +0000 (11:54 +0200)
committerIlia Mirkin <imirkin@alum.mit.edu>
Thu, 19 Feb 2015 05:28:34 +0000 (00:28 -0500)
Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/glsl/ir_builder.cpp
src/glsl/ir_builder.h

index 2872c516b149cf0d935cfd032b2cc930aad00ace..e44b05c991c30753fda5f8046622c4ada4a3c43a 100644 (file)
@@ -256,6 +256,11 @@ ir_expression *round_even(operand a)
    return expr(ir_unop_round_even, a);
 }
 
+ir_expression *fract(operand a)
+{
+   return expr(ir_unop_fract, a);
+}
+
 /* dot for vectors, mul for scalars */
 ir_expression *dot(operand a, operand b)
 {
@@ -519,6 +524,24 @@ interpolate_at_sample(operand a, operand b)
    return expr(ir_binop_interpolate_at_sample, a, b);
 }
 
+ir_expression *
+f2d(operand a)
+{
+   return expr(ir_unop_f2d, a);
+}
+
+ir_expression *
+i2d(operand a)
+{
+   return expr(ir_unop_i2d, a);
+}
+
+ir_expression *
+u2d(operand a)
+{
+   return expr(ir_unop_u2d, a);
+}
+
 ir_expression *
 fma(operand a, operand b, operand c)
 {
index 514275e28576c024f83dffdcfbc6779ee53156a1..870265881138b44b6c72d46ee36353ab1e3fc231 100644 (file)
@@ -139,6 +139,7 @@ ir_expression *carry(operand a, operand b);
 ir_expression *borrow(operand a, operand b);
 ir_expression *trunc(operand a);
 ir_expression *round_even(operand a);
+ir_expression *fract(operand a);
 ir_expression *dot(operand a, operand b);
 ir_expression *clamp(operand a, operand b, operand c);
 ir_expression *saturate(operand a);
@@ -184,6 +185,10 @@ ir_expression *i2b(operand a);
 ir_expression *f2b(operand a);
 ir_expression *b2f(operand a);
 
+ir_expression *f2d(operand a);
+ir_expression *i2d(operand a);
+ir_expression *u2d(operand a);
+
 ir_expression *min2(operand a, operand b);
 ir_expression *max2(operand a, operand b);