r300g: Fix bug in OMOD optimization
https://bugs.freedesktop.org/show_bug.cgi?id=60503 NOTE: This is a candidate for the stable branches.
This commit is contained in:
@@ -725,6 +725,7 @@ static int peephole_mul_omod(
|
||||
struct rc_list * writer_list;
|
||||
struct rc_variable * var;
|
||||
struct peephole_mul_cb_data cb_data;
|
||||
unsigned writemask_sum;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
unsigned int j;
|
||||
@@ -832,10 +833,11 @@ static int peephole_mul_omod(
|
||||
}
|
||||
|
||||
/* Rewrite the instructions */
|
||||
writemask_sum = rc_variable_writemask_sum(writer_list->Item);
|
||||
for (var = writer_list->Item; var; var = var->Friend) {
|
||||
struct rc_variable * writer = var;
|
||||
unsigned conversion_swizzle = rc_make_conversion_swizzle(
|
||||
writer->Inst->U.I.DstReg.WriteMask,
|
||||
writemask_sum,
|
||||
inst_mul->U.I.DstReg.WriteMask);
|
||||
writer->Inst->U.I.Omod = omod_op;
|
||||
writer->Inst->U.I.DstReg.File = inst_mul->U.I.DstReg.File;
|
||||
|
||||
Reference in New Issue
Block a user