Specifically, for the case where we initialize a dmat with a source
matrix that has fewer columns/rows.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
for (/* empty */; col < var->type->matrix_columns; col++) {
ir_constant_data ident;
- ident.f[0] = 0.0f;
- ident.f[1] = 0.0f;
- ident.f[2] = 0.0f;
- ident.f[3] = 0.0f;
-
- ident.f[col] = 1.0f;
+ if (!col_type->is_double()) {
+ ident.f[0] = 0.0f;
+ ident.f[1] = 0.0f;
+ ident.f[2] = 0.0f;
+ ident.f[3] = 0.0f;
+ ident.f[col] = 1.0f;
+ } else {
+ ident.d[0] = 0.0;
+ ident.d[1] = 0.0;
+ ident.d[2] = 0.0;
+ ident.d[3] = 0.0;
+ ident.d[col] = 1.0;
+ }
ir_rvalue *const rhs = new(ctx) ir_constant(col_type, &ident);