glsl: Add ir_unop_sin_reduced and ir_unop_cos_reduced
authorIan Romanick <ian.d.romanick@intel.com>
Thu, 18 Nov 2010 19:05:32 +0000 (11:05 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Fri, 19 Nov 2010 23:00:25 +0000 (15:00 -0800)
commitf2616e56de8a48360cae8f269727b58490555f4d
tree56462288844e777618344e9f7830b5c3eb1f1f02
parent04ffbe1ac6a82ac5cce843afa15ffdfa4ef78103
glsl: Add ir_unop_sin_reduced and ir_unop_cos_reduced

The operate just like ir_unop_sin and ir_unop_cos except that they
expect their inputs to be limited to the range [-pi, pi].  Several
GPUs require this limited range for their sine and cosine
instructions, so having these as operations (along with a to-be-written
lowering pass) helps this architectures.

These new operations also matche the semantics of the
GL_ARB_fragment_program SCS instruction.  Having these as operations
helps in generating GLSL IR directly from assembly fragment programs.
src/glsl/ir.cpp
src/glsl/ir.h
src/glsl/ir_constant_expression.cpp
src/glsl/ir_validate.cpp
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/program/ir_to_mesa.cpp