From e8a6f2ad65b03eac7c030b2cd4955a162739870b Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Wed, 4 Feb 2015 18:08:21 -0800 Subject: [PATCH] i965: Add an is_negative_one() method. Reviewed-by: Kenneth Graunke Reviewed-by: Ian Romanick --- src/mesa/drivers/dri/i965/brw_shader.cpp | 16 ++++++++++++++++ src/mesa/drivers/dri/i965/brw_shader.h | 1 + 2 files changed, 17 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp index ad2e22adbc0..f8769327883 100644 --- a/src/mesa/drivers/dri/i965/brw_shader.cpp +++ b/src/mesa/drivers/dri/i965/brw_shader.cpp @@ -731,6 +731,22 @@ backend_reg::is_one() const : fixed_hw_reg.dw1.d == 1; } +bool +backend_reg::is_negative_one() const +{ + if (file != IMM) + return false; + + switch (type) { + case BRW_REGISTER_TYPE_F: + return fixed_hw_reg.dw1.f == -1.0; + case BRW_REGISTER_TYPE_D: + return fixed_hw_reg.dw1.d == -1; + default: + return false; + } +} + bool backend_reg::is_null() const { diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h index 4b5c57364e8..7bff186dc49 100644 --- a/src/mesa/drivers/dri/i965/brw_shader.h +++ b/src/mesa/drivers/dri/i965/brw_shader.h @@ -51,6 +51,7 @@ struct backend_reg #ifdef __cplusplus bool is_zero() const; bool is_one() const; + bool is_negative_one() const; bool is_null() const; bool is_accumulator() const; #endif -- 2.30.2