Mesa (main): glsl: Retire unused modes for lower_64bit_integer_instructions.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Dec 21 00:42:23 UTC 2021


Module: Mesa
Branch: main
Commit: f568d8098691ec0e9d086f8fc09019f863ea75f1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f568d8098691ec0e9d086f8fc09019f863ea75f1

Author: Emma Anholt <emma at anholt.net>
Date:   Fri Dec 17 13:33:08 2021 -0800

glsl: Retire unused modes for lower_64bit_integer_instructions.

Unused since 424ac809bfac ("i965: Do int64 lowering in NIR")

Reviewed-by: Alyssa Rosenzweig <alyssa at collabora.com>.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14249>

---

 src/compiler/glsl/builtin_functions.cpp |  8 -----
 src/compiler/glsl/builtin_functions.h   |  6 ----
 src/compiler/glsl/builtin_int64.h       | 56 ---------------------------------
 src/compiler/glsl/glcpp/glcpp-parse.y   |  2 --
 src/compiler/glsl/int64.glsl            | 22 -------------
 src/compiler/glsl/ir_optimization.h     |  8 ++---
 src/compiler/glsl/lower_int64.cpp       | 16 ++--------
 7 files changed, 5 insertions(+), 113 deletions(-)

diff --git a/src/compiler/glsl/builtin_functions.cpp b/src/compiler/glsl/builtin_functions.cpp
index 601263e4238..9e4bfdf2a76 100644
--- a/src/compiler/glsl/builtin_functions.cpp
+++ b/src/compiler/glsl/builtin_functions.cpp
@@ -4441,10 +4441,6 @@ builtin_builder::create_builtins()
                 generate_ir::imod64(mem_ctx, integer_functions_supported),
                 NULL);
 
-   add_function("__builtin_sign64",
-                generate_ir::sign64(mem_ctx, integer_functions_supported),
-                NULL);
-
    add_function("__builtin_udiv64",
                 generate_ir::udiv64(mem_ctx, integer_functions_supported),
                 NULL);
@@ -4453,10 +4449,6 @@ builtin_builder::create_builtins()
                 generate_ir::umod64(mem_ctx, integer_functions_supported),
                 NULL);
 
-   add_function("__builtin_umul64",
-                generate_ir::umul64(mem_ctx, integer_functions_supported),
-                NULL);
-
    add_function("countLeadingZeros",
                 _countLeadingZeros(shader_integer_functions2,
                                    glsl_type::uint_type),
diff --git a/src/compiler/glsl/builtin_functions.h b/src/compiler/glsl/builtin_functions.h
index ff3d4e9f436..fb1e5e5ee5d 100644
--- a/src/compiler/glsl/builtin_functions.h
+++ b/src/compiler/glsl/builtin_functions.h
@@ -68,12 +68,6 @@ umod64(void *mem_ctx, builtin_available_predicate avail);
 ir_function_signature *
 imod64(void *mem_ctx, builtin_available_predicate avail);
 
-ir_function_signature *
-umul64(void *mem_ctx, builtin_available_predicate avail);
-
-ir_function_signature *
-sign64(void *mem_ctx, builtin_available_predicate avail);
-
 ir_function_signature *
 udivmod64(void *mem_ctx, builtin_available_predicate avail);
 
diff --git a/src/compiler/glsl/builtin_int64.h b/src/compiler/glsl/builtin_int64.h
index 6812d4bf97a..40e2c1cfd2a 100644
--- a/src/compiler/glsl/builtin_int64.h
+++ b/src/compiler/glsl/builtin_int64.h
@@ -1,60 +1,4 @@
 ir_function_signature *
-umul64(void *mem_ctx, builtin_available_predicate avail)
-{
-   ir_function_signature *const sig =
-      new(mem_ctx) ir_function_signature(glsl_type::uvec2_type, avail);
-   ir_factory body(&sig->body, mem_ctx);
-   sig->is_defined = true;
-
-   exec_list sig_parameters;
-
-   ir_variable *const r0001 = new(mem_ctx) ir_variable(glsl_type::uvec2_type, "a", ir_var_function_in);
-   sig_parameters.push_tail(r0001);
-   ir_variable *const r0002 = new(mem_ctx) ir_variable(glsl_type::uvec2_type, "b", ir_var_function_in);
-   sig_parameters.push_tail(r0002);
-   ir_variable *const r0003 = new(mem_ctx) ir_variable(glsl_type::uvec2_type, "result", ir_var_auto);
-   body.emit(r0003);
-   body.emit(assign(r0003, imul_high(swizzle_x(r0001), swizzle_x(r0002)), 0x02));
-
-   body.emit(assign(r0003, mul(swizzle_x(r0001), swizzle_x(r0002)), 0x01));
-
-   ir_expression *const r0004 = mul(swizzle_x(r0001), swizzle_y(r0002));
-   ir_expression *const r0005 = mul(swizzle_y(r0001), swizzle_x(r0002));
-   ir_expression *const r0006 = add(r0004, r0005);
-   body.emit(assign(r0003, add(swizzle_y(r0003), r0006), 0x02));
-
-   body.emit(ret(r0003));
-
-   sig->replace_parameters(&sig_parameters);
-   return sig;
-}
-ir_function_signature *
-sign64(void *mem_ctx, builtin_available_predicate avail)
-{
-   ir_function_signature *const sig =
-      new(mem_ctx) ir_function_signature(glsl_type::ivec2_type, avail);
-   ir_factory body(&sig->body, mem_ctx);
-   sig->is_defined = true;
-
-   exec_list sig_parameters;
-
-   ir_variable *const r0007 = new(mem_ctx) ir_variable(glsl_type::ivec2_type, "a", ir_var_function_in);
-   sig_parameters.push_tail(r0007);
-   ir_variable *const r0008 = new(mem_ctx) ir_variable(glsl_type::ivec2_type, "result", ir_var_auto);
-   body.emit(r0008);
-   body.emit(assign(r0008, rshift(swizzle_y(r0007), body.constant(int(31))), 0x02));
-
-   ir_expression *const r0009 = bit_or(swizzle_x(r0007), swizzle_y(r0007));
-   ir_expression *const r000A = nequal(r0009, body.constant(int(0)));
-   ir_expression *const r000B = expr(ir_unop_b2i, r000A);
-   body.emit(assign(r0008, bit_or(swizzle_y(r0008), r000B), 0x01));
-
-   body.emit(ret(r0008));
-
-   sig->replace_parameters(&sig_parameters);
-   return sig;
-}
-ir_function_signature *
 udivmod64(void *mem_ctx, builtin_available_predicate avail)
 {
    ir_function_signature *const sig =
diff --git a/src/compiler/glsl/glcpp/glcpp-parse.y b/src/compiler/glsl/glcpp/glcpp-parse.y
index 2359967e89e..33aba1b6aa0 100644
--- a/src/compiler/glsl/glcpp/glcpp-parse.y
+++ b/src/compiler/glsl/glcpp/glcpp-parse.y
@@ -2489,8 +2489,6 @@ _glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t versio
        * those functions so that they can be tested.
        */
       if (parser->extension_list->MESA_shader_integer_functions) {
-         add_builtin_define(parser, "__have_builtin_builtin_sign64", 1);
-         add_builtin_define(parser, "__have_builtin_builtin_umul64", 1);
          add_builtin_define(parser, "__have_builtin_builtin_udiv64", 1);
          add_builtin_define(parser, "__have_builtin_builtin_umod64", 1);
          add_builtin_define(parser, "__have_builtin_builtin_idiv64", 1);
diff --git a/src/compiler/glsl/int64.glsl b/src/compiler/glsl/int64.glsl
index 538f56cff19..7b826aecd73 100644
--- a/src/compiler/glsl/int64.glsl
+++ b/src/compiler/glsl/int64.glsl
@@ -8,28 +8,6 @@
 #extension GL_ARB_gpu_shader_int64: require
 #extension GL_ARB_shading_language_420pack: require
 
-uvec2
-umul64(uvec2 a, uvec2 b)
-{
-   uvec2 result;
-
-   umulExtended(a.x, b.x, result.y, result.x);
-   result.y += a.x * b.y + a.y * b.x;
-
-   return result;
-}
-
-ivec2
-sign64(ivec2 a)
-{
-   ivec2 result;
-
-   result.y = a.y >> 31;
-   result.x = result.y | int((a.x | a.y) != 0);
-
-   return result;
-}
-
 uvec4
 udivmod64(uvec2 n, uvec2 d)
 {
diff --git a/src/compiler/glsl/ir_optimization.h b/src/compiler/glsl/ir_optimization.h
index 56e5cebb706..898e2f7e455 100644
--- a/src/compiler/glsl/ir_optimization.h
+++ b/src/compiler/glsl/ir_optimization.h
@@ -59,11 +59,9 @@ struct gl_shader_program;
 #define SQRT_TO_ABS_SQRT          0x200000
 #define MUL64_TO_MUL_AND_MUL_HIGH 0x400000
 
-/* Opertaions for lower_64bit_integer_instructions() */
-#define MUL64                     (1U << 0)
-#define SIGN64                    (1U << 1)
-#define DIV64                     (1U << 2)
-#define MOD64                     (1U << 3)
+/* Operations for lower_64bit_integer_instructions() */
+#define DIV64                     (1U << 0)
+#define MOD64                     (1U << 1)
 
 /**
  * \see class lower_packing_builtins_visitor
diff --git a/src/compiler/glsl/lower_int64.cpp b/src/compiler/glsl/lower_int64.cpp
index 43774d6ab33..a4d36735d07 100644
--- a/src/compiler/glsl/lower_int64.cpp
+++ b/src/compiler/glsl/lower_int64.cpp
@@ -29,11 +29,11 @@
  * called __builtin_foo with the same number of parameters that takes uvec2
  * sources and produces uvec2 results.  An operation like
  *
- *     uint64_t(x) * uint64_t(y)
+ *     uint64_t(x) / uint64_t(y)
  *
  * becomes
  *
- *     packUint2x32(__builtin_umul64(unpackUint2x32(x), unpackUint2x32(y)));
+ *     packUint2x32(__builtin_udiv64(unpackUint2x32(x), unpackUint2x32(y)));
  */
 
 #include "main/macros.h"
@@ -353,12 +353,6 @@ lower_64bit_visitor::handle_rvalue(ir_rvalue **rvalue)
    assert(ir != NULL);
 
    switch (ir->operation) {
-   case ir_unop_sign:
-      if (lowering(SIGN64)) {
-         *rvalue = handle_op(ir, "__builtin_sign64", generate_ir::sign64);
-      }
-      break;
-
    case ir_binop_div:
       if (lowering(DIV64)) {
          if (ir->type->base_type == GLSL_TYPE_UINT64) {
@@ -379,12 +373,6 @@ lower_64bit_visitor::handle_rvalue(ir_rvalue **rvalue)
       }
       break;
 
-   case ir_binop_mul:
-      if (lowering(MUL64)) {
-         *rvalue = handle_op(ir, "__builtin_umul64", generate_ir::umul64);
-      }
-      break;
-
    default:
       break;
    }



More information about the mesa-commit mailing list