diff --git a/src/compiler/glsl/loop_analysis.cpp b/src/compiler/glsl/loop_analysis.cpp index 9429e69c2a7..6f0b3287a5b 100644 --- a/src/compiler/glsl/loop_analysis.cpp +++ b/src/compiler/glsl/loop_analysis.cpp @@ -161,12 +161,21 @@ calculate_iterations(ir_rvalue *from, ir_rvalue *to, ir_rvalue *increment, case GLSL_TYPE_INT: iter = new(mem_ctx) ir_constant(iter_value + bias[i]); break; + case GLSL_TYPE_INT16: + iter = new(mem_ctx) ir_constant(uint16_t(iter_value + bias[i])); + break; case GLSL_TYPE_UINT: iter = new(mem_ctx) ir_constant(unsigned(iter_value + bias[i])); break; + case GLSL_TYPE_UINT16: + iter = new(mem_ctx) ir_constant(uint16_t(iter_value + bias[i])); + break; case GLSL_TYPE_FLOAT: iter = new(mem_ctx) ir_constant(float(iter_value + bias[i])); break; + case GLSL_TYPE_FLOAT16: + iter = new(mem_ctx) ir_constant(float16_t(float(iter_value + bias[i]))); + break; case GLSL_TYPE_DOUBLE: iter = new(mem_ctx) ir_constant(double(iter_value + bias[i])); break;