From bf0773aeca86669371d99eadb928c6dc92d5840a Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Thu, 9 Jan 2014 20:57:36 -0800 Subject: [PATCH] i965/fs: Optimize LRP with x == y into a MOV. total instructions in shared programs: 1487331 -> 1485988 (-0.09%) instructions in affected programs: 45638 -> 44295 (-2.94%) GAINED: 7 LOST: 0 Reviewed-by: Jordan Justen --- src/mesa/drivers/dri/i965/brw_fs.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 4a96126bac5..78ddf0d99cf 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -2000,6 +2000,16 @@ fs_visitor::opt_algebraic() break; } break; + case BRW_OPCODE_LRP: + if (inst->src[1].equals(inst->src[2])) { + inst->opcode = BRW_OPCODE_MOV; + inst->src[0] = inst->src[1]; + inst->src[1] = reg_undef; + inst->src[2] = reg_undef; + progress = true; + break; + } + break; case BRW_OPCODE_SEL: if (inst->saturate && inst->src[1].file == IMM) { switch (inst->conditional_mod) { -- 2.30.2