Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/hlsl_sm1.c:
write_sm1_unary_op(ctx, buffer, D3DSIO_FRC, &instr->reg, &arg1->reg, D3DSPSM_NONE); break;
case HLSL_OP2_DOT:
switch (dst_type->base_type)
{
case HLSL_TYPE_FLOAT:
I think that SM1 basically only supports float, which is why all the other operations do not have this switch on the data type. I am not really confident on the details of this, but I guess that only float operations should arrive here anyway.