gallivm: Lower TGSI_OPCODE_MUL to fmul by default

This fixes a number of crashes on r600g due to the fact that
lp_build_mul assumes vector types when optimizing mul to bit shifts.

This bug was uncovered by 0ad1fefd69
This commit is contained in:
Tom Stellard
2012-12-06 11:56:21 -08:00
parent 8000e7b4b6
commit ffe1794e0c
@@ -580,8 +580,9 @@ mul_emit(
struct lp_build_tgsi_context * bld_base,
struct lp_build_emit_data * emit_data)
{
emit_data->output[emit_data->chan] = lp_build_mul(&bld_base->base,
emit_data->args[0], emit_data->args[1]);
emit_data->output[emit_data->chan] = LLVMBuildFMul(
bld_base->base.gallivm->builder,
emit_data->args[0], emit_data->args[1], "");
}
/*.TGSI_OPCODE_DIV.*/