From bd0d3c7b1c61e834e563f7f1c0c9ff553661cbd0 Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Wed, 30 Aug 2023 09:33:47 +0200 Subject: [PATCH] panfrost: drop pan_nir_lower_64bit_intrin It's dead code now. Signed-off-by: Karol Herbst Reviewed-by: Alyssa Rosenzweig Part-of: --- src/panfrost/compiler/bifrost_compile.c | 1 - src/panfrost/midgard/midgard_compile.c | 1 - src/panfrost/util/meson.build | 1 - src/panfrost/util/pan_lower_64bit_intrin.c | 69 ---------------------- 4 files changed, 72 deletions(-) delete mode 100644 src/panfrost/util/pan_lower_64bit_intrin.c diff --git a/src/panfrost/compiler/bifrost_compile.c b/src/panfrost/compiler/bifrost_compile.c index ae52e4865c9..735a1563bf5 100644 --- a/src/panfrost/compiler/bifrost_compile.c +++ b/src/panfrost/compiler/bifrost_compile.c @@ -4705,7 +4705,6 @@ bifrost_preprocess_nir(nir_shader *nir, unsigned gpu_id) NIR_PASS_V(nir, pan_lower_sample_pos); NIR_PASS_V(nir, nir_lower_bit_size, bi_lower_bit_size, NULL); NIR_PASS_V(nir, nir_lower_64bit_phis); - NIR_PASS_V(nir, pan_nir_lower_64bit_intrin); NIR_PASS_V(nir, pan_lower_helper_invocation); NIR_PASS_V(nir, nir_lower_int64); diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c index a42428b590f..1dae907d444 100644 --- a/src/panfrost/midgard/midgard_compile.c +++ b/src/panfrost/midgard/midgard_compile.c @@ -362,7 +362,6 @@ midgard_preprocess_nir(nir_shader *nir, unsigned gpu_id) NIR_PASS_V(nir, nir_lower_ssbo); NIR_PASS_V(nir, pan_nir_lower_zs_store); - NIR_PASS_V(nir, pan_nir_lower_64bit_intrin); NIR_PASS_V(nir, nir_lower_frexp); NIR_PASS_V(nir, midgard_nir_lower_global_load); diff --git a/src/panfrost/util/meson.build b/src/panfrost/util/meson.build index aeb8343f441..7ad70db285d 100644 --- a/src/panfrost/util/meson.build +++ b/src/panfrost/util/meson.build @@ -32,7 +32,6 @@ libpanfrost_util_files = files( 'pan_lower_store_component.c', 'pan_lower_writeout.c', 'pan_lower_xfb.c', - 'pan_lower_64bit_intrin.c', ) libpanfrost_util = static_library( diff --git a/src/panfrost/util/pan_lower_64bit_intrin.c b/src/panfrost/util/pan_lower_64bit_intrin.c deleted file mode 100644 index 408a48b09c3..00000000000 --- a/src/panfrost/util/pan_lower_64bit_intrin.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2020 Icecream95 - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -#include "compiler/nir/nir_builder.h" -#include "pan_ir.h" - -/* OpenCL uses 64-bit types for some intrinsic functions, including - * global_invocation_id(). This could be worked around during conversion to - * MIR, except that global_invocation_id is a vec3, and the 128-bit registers - * on Midgard can only hold a 64-bit vec2. - * Rather than attempting to add hacky 64-bit vec3 support, convert these - * intrinsics to 32-bit and add a cast back to 64-bit, and rely on NIR not - * vectorizing back to vec3. - */ - -static bool -nir_lower_64bit_intrin_instr(nir_builder *b, nir_intrinsic_instr *intr, - void *data) -{ - switch (intr->intrinsic) { - case nir_intrinsic_load_global_invocation_id: - case nir_intrinsic_load_global_invocation_id_zero_base: - break; - - default: - return false; - } - - if (intr->def.bit_size != 64) - return false; - - b->cursor = nir_after_instr(&intr->instr); - - intr->def.bit_size = 32; - - nir_def *conv = nir_u2u64(b, &intr->def); - - nir_def_rewrite_uses_after(&intr->def, conv, conv->parent_instr); - - return true; -} - -bool -pan_nir_lower_64bit_intrin(nir_shader *shader) -{ - return nir_shader_intrinsics_pass( - shader, nir_lower_64bit_intrin_instr, - nir_metadata_block_index | nir_metadata_dominance, NULL); -}