glsl,nir: Move i/umulExtended lowering to NIR.
authorEmma Anholt <emma@anholt.net>
Tue, 10 May 2022 17:31:07 +0000 (10:31 -0700)
committerMarge Bot <emma+marge@anholt.net>
Wed, 1 Jun 2022 10:56:35 +0000 (10:56 +0000)
commit7472bb4badbf3bf196c1c09adbe16e70b048ab2d
tree434dd787c8bd0efc13466031d57e666af8959f77
parent6f0db3778f3e2e874d844b98b256f121680be331
glsl,nir: Move i/umulExtended lowering to NIR.

NIR already has the necessary lowering, and the GLSL lowering violates
GLSL IR validation rules.  Once quadop lowering was turned off, the IR
validation at the end of the compile path on DEBUG builds caught the
problem.

In order to move the lowering to NIR, though, we need to make sure that
drivers supporting these functions actually have the lowering flag set.

xfails added for t860, where apparently this tickles a variety of existing
64-bit bugs in the backend.

Fixes: #6461
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Mykhailo Skorokhodov <mykhailo.skorokhodov@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16437>
12 files changed:
src/compiler/glsl/ir_optimization.h
src/compiler/glsl/lower_instructions.cpp
src/gallium/auxiliary/nir/nir_to_tgsi.c
src/gallium/drivers/llvmpipe/lp_screen.c
src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp
src/gallium/drivers/radeonsi/si_get.c
src/gallium/drivers/softpipe/sp_screen.c
src/gallium/drivers/svga/svga_screen.c
src/gallium/drivers/v3d/v3d_screen.c
src/mesa/state_tracker/st_glsl_to_ir.cpp
src/panfrost/ci/panfrost-t860-fails.txt
src/panfrost/midgard/midgard_compile.h