i965/fs: Lower the MULH virtual instruction.
authorFrancisco Jerez <currojerez@riseup.net>
Thu, 6 Aug 2015 11:04:00 +0000 (14:04 +0300)
committerFrancisco Jerez <currojerez@riseup.net>
Thu, 6 Aug 2015 11:12:12 +0000 (14:12 +0300)
commit3b48a0eeda20f5cf2dbc8de5e36f8fe3461f41bf
tree5b28c4047b1572e5782303664c28c9b88b7beaaf
parent2e731264382954beb1192cd7cc62e16e0b8e7978
i965/fs: Lower the MULH virtual instruction.

Translate MULH into the MUL/MACH sequence.  This does roughly the same
thing that nir_emit_alu() used to do but we can now handle 16-wide by
taking advantage of the SIMD lowering pass.  The force_sechalf
workaround near the bottom is required because the SIMD lowering pass
will emit instructions with non-zero quarter control and we need to
make sure we avoid that on integer arithmetic instructions with
implicit accumulator access due to a known hardware bug on IVB.

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_fs.cpp