diff options
author | Dave Airlie <[email protected]> | 2015-02-05 11:54:39 +0200 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2015-02-19 00:28:34 -0500 |
commit | 41e9adfd83a35d3c147768b80b6b4c0b10c3a379 (patch) | |
tree | 851db9c801b2d31db12373ad1bd30378cc3932fc | |
parent | eeae6251be7bddf3040f14a2782ee8d5d17f7914 (diff) |
glsl/ir: Add builder support for functions with double floats
Signed-off-by: Dave Airlie <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Reviewed-by: Ilia Mirkin <[email protected]>
-rw-r--r-- | src/glsl/ir_builder.cpp | 23 | ||||
-rw-r--r-- | src/glsl/ir_builder.h | 5 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/glsl/ir_builder.cpp b/src/glsl/ir_builder.cpp index 2872c516b14..e44b05c991c 100644 --- a/src/glsl/ir_builder.cpp +++ b/src/glsl/ir_builder.cpp @@ -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) { @@ -520,6 +525,24 @@ interpolate_at_sample(operand a, operand 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) { return expr(ir_triop_fma, a, b, c); diff --git a/src/glsl/ir_builder.h b/src/glsl/ir_builder.h index 514275e2857..87026588113 100644 --- a/src/glsl/ir_builder.h +++ b/src/glsl/ir_builder.h @@ -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); |