diff --git a/.pick_status.json b/.pick_status.json index 370dd24bfc0..ddfa31762d9 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1795,7 +1795,7 @@ "description": "nv50/ir: clear dnz flag when converting mul/mad to simpler ops", "nominated": false, "nomination_type": null, - "resolution": 4, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp index 2d32067729d..f5514c6f5fd 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp @@ -1108,6 +1108,7 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s) } } else if (imm0.isInteger(0)) { + i->dnz = 0; i->op = OP_MOV; i->setSrc(0, new_ImmediateValue(prog, 0u)); i->src(0).mod = Modifier(0); @@ -1117,6 +1118,7 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s) if (!i->postFactor && (imm0.isInteger(1) || imm0.isInteger(-1))) { if (imm0.isNegative()) i->src(t).mod = i->src(t).mod ^ Modifier(NV50_IR_MOD_NEG); + i->dnz = 0; i->op = i->src(t).mod.getOp(); if (s == 0) { i->setSrc(0, i->getSrc(1)); @@ -1157,6 +1159,7 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s) i->src(0).mod = i->src(2).mod; i->setSrc(1, NULL); i->setSrc(2, NULL); + i->dnz = 0; i->op = i->src(0).mod.getOp(); if (i->op != OP_CVT) i->src(0).mod = 0;