summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2020-09-22 12:46:05 -0700
committerIan Romanick <ian.d.romanick@intel.com>2020-09-28 11:43:10 -0700
commitd0ce24c8caa14db94e6f6c1f6e1c0da5f58ca1e8 (patch)
tree4a86bc5fb166b6e0c94d813fa1aa21f8bd62e3c0
parent86bab92aa4aac91e8d8730e7344e9bbb44e062ab (diff)
intel/vec4: Remove inline lowering of LRP
Since dd7135d55d5 ("intel/compiler: Use the flrp lowering pass for all stages on Gen4 and Gen5"), it's not possible to get to this function on GPUs that don't have a LRP instruction. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6826>
-rw-r--r--src/intel/compiler/brw_vec4_builder.h22
1 files changed, 5 insertions, 17 deletions
diff --git a/src/intel/compiler/brw_vec4_builder.h b/src/intel/compiler/brw_vec4_builder.h
index 5c880c19f52..f056fe6a331 100644
--- a/src/intel/compiler/brw_vec4_builder.h
+++ b/src/intel/compiler/brw_vec4_builder.h
@@ -501,23 +501,11 @@ namespace brw {
LRP(const dst_reg &dst, const src_reg &x, const src_reg &y,
const src_reg &a) const
{
- if (shader->devinfo->gen >= 6 && shader->devinfo->gen <= 10) {
- /* The LRP instruction actually does op1 * op0 + op2 * (1 - op0), so
- * we need to reorder the operands.
- */
- return emit(BRW_OPCODE_LRP, dst, a, y, x);
-
- } else {
- /* We can't use the LRP instruction. Emit x*(1-a) + y*a. */
- const dst_reg y_times_a = vgrf(dst.type);
- const dst_reg one_minus_a = vgrf(dst.type);
- const dst_reg x_times_one_minus_a = vgrf(dst.type);
-
- MUL(y_times_a, y, a);
- ADD(one_minus_a, negate(a), brw_imm_f(1.0f));
- MUL(x_times_one_minus_a, x, src_reg(one_minus_a));
- return ADD(dst, src_reg(x_times_one_minus_a), src_reg(y_times_a));
- }
+ /* The LRP instruction actually does op1 * op0 + op2 * (1 - op0), so
+ * we need to reorder the operands.
+ */
+ assert(shader->devinfo->gen >= 6 && shader->devinfo->gen <= 9);
+ return emit(BRW_OPCODE_LRP, dst, a, y, x);
}
backend_shader *shader;