nir/lower_io_to_vector: don't merge compact varyings
[mesa.git] / src / compiler / nir / nir_lower_bool_to_int32.c
index 064b27b9025e6315ab874e76ef3d181ff17f1469..e331de488a3676ab1b6f4e4a3932ef253219cd92 100644 (file)
@@ -46,8 +46,10 @@ lower_alu_instr(nir_alu_instr *alu)
 {
    const nir_op_info *op_info = &nir_op_infos[alu->op];
 
+   assert(alu->dest.dest.is_ssa);
+
    switch (alu->op) {
-   case nir_op_imov:
+   case nir_op_mov:
    case nir_op_vec2:
    case nir_op_vec3:
    case nir_op_vec4:
@@ -115,9 +117,9 @@ nir_lower_bool_to_int32_impl(nir_function_impl *impl)
          case nir_instr_type_load_const: {
             nir_load_const_instr *load = nir_instr_as_load_const(instr);
             if (load->def.bit_size == 1) {
-               nir_const_value value = load->value;
+               nir_const_value *value = load->value;
                for (unsigned i = 0; i < load->def.num_components; i++)
-                  load->value.u32[i] = value.b[i] ? NIR_TRUE : NIR_FALSE;
+                  load->value[i].u32 = value[i].b ? NIR_TRUE : NIR_FALSE;
                load->def.bit_size = 32;
                progress = true;
             }