nv50/ir: fix integer mul lowering for u32 x u32 -> high u32
authorIlia Mirkin <imirkin@alum.mit.edu>
Tue, 13 May 2014 15:23:33 +0000 (11:23 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Sun, 18 May 2014 21:59:16 +0000 (17:59 -0400)
commit5b8f1a0f7c5b1412577a913d374192a2329fa615
treed694105a8ad1ed05a01560e98c2f25ef6bfa45d3
parent4ebaabcccb125e3d29ab6e6ac3d23897287d7574
nv50/ir: fix integer mul lowering for u32 x u32 -> high u32

UNION appears to expect that all of its sources are conditionally
defined. Otherwise it inserts an unpredicated mov instruction which
overwrites the desired result. This fixes tests that use UMUL_HI, and
much less directly, unsigned integer division by a constant, which uses
this functionality in a peephole pass.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp