Mesa (master): intel/mi_builder: Short-circuit shifts in more cases
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Feb 18 21:33:04 UTC 2021
Module: Mesa
Branch: master
Commit: dbcbb321ad57d3181335f9e9641d49ed502de13e
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=dbcbb321ad57d3181335f9e9641d49ed502de13e
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Thu Feb 18 09:34:34 2021 -0600
intel/mi_builder: Short-circuit shifts in more cases
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9116>
---
src/intel/common/gen_mi_builder.h | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/intel/common/gen_mi_builder.h b/src/intel/common/gen_mi_builder.h
index 79a167991e4..98e547c68e2 100644
--- a/src/intel/common/gen_mi_builder.h
+++ b/src/intel/common/gen_mi_builder.h
@@ -855,6 +855,12 @@ static inline struct gen_mi_value
gen_mi_ishl_imm(struct gen_mi_builder *b,
struct gen_mi_value src, uint32_t shift)
{
+ if (shift == 0)
+ return src;
+
+ if (shift >= 64)
+ return gen_mi_imm(0);
+
struct gen_mi_value res = gen_mi_value_to_gpr(b, src);
for (unsigned i = 0; i < shift; i++)
@@ -867,10 +873,13 @@ static inline struct gen_mi_value
gen_mi_ushr32_imm(struct gen_mi_builder *b,
struct gen_mi_value src, uint32_t shift)
{
+ if (shift == 0)
+ return src;
+
/* We right-shift by left-shifting by 32 - shift and taking the top 32 bits
* of the result.
*/
- if (shift > 64)
+ if (shift >= 64)
return gen_mi_imm(0);
if (shift > 32) {
More information about the mesa-commit
mailing list