No use in taking a 64-bit value when we know the high 32-bits are zero.
.lower_unpack_unorm_2x16 = true,
.lower_unpack_unorm_4x8 = true,
.lower_subgroup_masks = true,
- .max_subgroup_size = 64, /* FIXME */
+ .max_subgroup_size = 32,
.max_unroll_iterations = 32,
};
bld.exec_all().MOV(flag, brw_imm_ud(0u));
bld.CMP(bld.null_reg_ud(), value, brw_imm_ud(0u), BRW_CONDITIONAL_NZ);
- dest.type = BRW_REGISTER_TYPE_UQ;
+ if (instr->dest.ssa.bit_size > 32) {
+ dest.type = BRW_REGISTER_TYPE_UQ;
+ } else {
+ dest.type = BRW_REGISTER_TYPE_UD;
+ }
bld.MOV(dest, flag);
break;
}