Zebediah Figura (@zfigura) commented about libs/vkd3d-shader/hlsl_codegen.c:
arg2 = expr->operands[1].node; assert(arg1->data_type->dimx == arg2->data_type->dimx); dimx = arg1->data_type->dimx;
is_bool = type->base_type == HLSL_TYPE_BOOL;
if (!(mult = hlsl_new_binary_expr(ctx, HLSL_OP2_MUL, arg1, arg2)))
if (!(mult = hlsl_new_binary_expr(ctx, is_bool ? HLSL_OP2_LOGIC_AND : HLSL_OP2_MUL, arg1, arg2)))
This seems like it should be part of whatever patch introduces lower_int_dot().