From: Kenneth Graunke Date: Wed, 18 Aug 2010 19:06:25 +0000 (-0700) Subject: ir_constant_expression: Implement equal/notEqual for booleans. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d12cb77d85ec726a67c2099c4105df63829b45a4;p=mesa.git ir_constant_expression: Implement equal/notEqual for booleans. Calls to equal(bvec, bvec) or notEqual(bvec, bvec) previously caused an assertion. Fixes piglit tests glsl-const-builtin-equal-bool and glsl-const-builtin-notEqual-bool. --- diff --git a/src/glsl/ir_constant_expression.cpp b/src/glsl/ir_constant_expression.cpp index 0a924246da1..54f14d1a541 100644 --- a/src/glsl/ir_constant_expression.cpp +++ b/src/glsl/ir_constant_expression.cpp @@ -904,6 +904,9 @@ ir_call::constant_expression_value() case GLSL_TYPE_FLOAT: data.b[c] = op[0]->value.f[c] == op[1]->value.f[c]; break; + case GLSL_TYPE_BOOL: + data.b[c] = op[0]->value.b[c] == op[1]->value.b[c]; + break; default: assert(!"Should not get here."); } @@ -1047,6 +1050,9 @@ ir_call::constant_expression_value() case GLSL_TYPE_FLOAT: data.b[c] = op[0]->value.f[c] != op[1]->value.f[c]; break; + case GLSL_TYPE_BOOL: + data.b[c] = op[0]->value.b[c] != op[1]->value.b[c]; + break; default: assert(!"Should not get here."); }