gallium: Add support for 32x32 muls with 64 bit results
authorZack Rusin <zackr@vmware.com>
Tue, 8 Oct 2013 19:11:02 +0000 (15:11 -0400)
committerZack Rusin <zackr@vmware.com>
Wed, 9 Oct 2013 22:30:20 +0000 (18:30 -0400)
commit6905698fc21710c18722295dedceb96ef5d5923b
tree448459df4604df868382f02fac033f354356f1c0
parentc01c6a95b41607dc58a343b2aa67bc3da673ca35
gallium: Add support for 32x32 muls with 64 bit results

The code introduces two new 32bit integer multiplication opcodes which
can be used to produce correct 64 bit results. GLSL, OpenCL and D3D10+
require them. We use two seperate opcodes, because they match the
behavior of GLSL and OpenCL, are a lot easier to add than a single
opcode with multiple destinations and because there's not much (any)
difference wrt code-generation.

Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/tgsi/tgsi_exec.c
src/gallium/auxiliary/tgsi/tgsi_info.c
src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
src/gallium/auxiliary/tgsi/tgsi_util.c
src/gallium/docs/source/tgsi.rst
src/gallium/include/pipe/p_shader_tokens.h
src/gallium/tests/graw/vertex-shader/vert-imul_hi.sh [new file with mode: 0644]
src/gallium/tests/graw/vertex-shader/vert-umul_hi.sh [new file with mode: 0644]