vkd3d-shader/hlsl: Lower casts to bool to comparisons.

Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Giovanni Mascellani
2022-04-06 21:24:42 +02:00
committed by Alexandre Julliard
parent 8fa196cf51
commit 8c086b5c91
3 changed files with 36 additions and 8 deletions

View File

@@ -27,7 +27,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
int32_t i;
double d;
float f;
bool b;
if (dst->node.data_type->dimx != src->node.data_type->dimx
|| dst->node.data_type->dimy != src->node.data_type->dimy)
@@ -47,7 +46,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
i = src->value[k].f;
f = src->value[k].f;
d = src->value[k].f;
b = !!src->value[k].f;
break;
case HLSL_TYPE_DOUBLE:
@@ -55,7 +53,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
i = src->value[k].d;
f = src->value[k].d;
d = src->value[k].d;
b = !!src->value[k].d;
break;
case HLSL_TYPE_INT:
@@ -63,7 +60,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
i = src->value[k].i;
f = src->value[k].i;
d = src->value[k].i;
b = !!src->value[k].i;
break;
case HLSL_TYPE_UINT:
@@ -71,7 +67,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
i = src->value[k].u;
f = src->value[k].u;
d = src->value[k].u;
b = !!src->value[k].u;
break;
case HLSL_TYPE_BOOL:
@@ -79,7 +74,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
i = !!src->value[k].u;
f = !!src->value[k].u;
d = !!src->value[k].u;
b = !!src->value[k].u;
break;
default:
@@ -107,7 +101,8 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
break;
case HLSL_TYPE_BOOL:
dst->value[k].u = b ? ~0u : 0;
/* Casts to bool should have already been lowered. */
assert(0);
break;
default: