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.
This commit is contained in:
Ian Romanick
2010-11-18 11:05:32 -08:00
parent 04ffbe1ac6
commit f2616e56de
6 changed files with 120 additions and 0 deletions

View File

@@ -239,6 +239,8 @@ static const char *const operator_strs[] = {
"round_even",
"sin",
"cos",
"sin_reduced",
"cos_reduced",
"dFdx",
"dFdy",
"noise",