glsl: Don't replace lrp pattern with lrp if arguments are not floats

We don't have "lrp(int, int, int)" and validation of ir_triop_lrp
fails down the road.

Fixes: 8d37e991
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3059
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Tested-by: Witold Baryluk <witold.baryluk@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5257>
This commit is contained in:
Danylo Piliaiev 2020-05-29 16:20:45 +03:00 committed by Marge Bot
parent 3ed2123d77
commit 9f3956fea0

View file

@ -578,7 +578,8 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir)
ir_rvalue *y_operand = inner_add->operands[1 - neg_pos];
ir_rvalue *a_operand = mul->operands[1 - inner_add_pos];
if (x_operand->type != y_operand->type ||
if (!x_operand->type->is_float_16_32_64() ||
x_operand->type != y_operand->type ||
x_operand->type != a_operand->type)
continue;