st/glsl_to_tgsi: fix [ui]vec[34] conversion to double

The corresponding opcodes for integers need to be treated the same as F2D.

Fixes GL45-CTS.gpu_shader_fp64.conversions.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Nicolai Hähnle 2016-10-13 16:40:11 +02:00
parent 1dd99a15a4
commit c3ce0d22b4

View file

@ -869,8 +869,9 @@ glsl_to_tgsi_visitor::emit_asm(ir_instruction *ir, unsigned op,
} else {
/* some opcodes are special case in what they use as sources
- F2D is a float src0, DLDEXP is integer src1 */
if (op == TGSI_OPCODE_F2D ||
- [FUI]2D/[UI]2I64 is a float/[u]int src0, DLDEXP is integer src1 */
if (op == TGSI_OPCODE_F2D || op == TGSI_OPCODE_U2D || op == TGSI_OPCODE_I2D ||
op == TGSI_OPCODE_I2I64 || op == TGSI_OPCODE_U2I64 ||
op == TGSI_OPCODE_DLDEXP ||
(op == TGSI_OPCODE_UCMP && dst_is_64bit[0])) {
dinst->src[j].swizzle = MAKE_SWIZZLE4(swz, swz, swz, swz);