agx: Handle 64-bit moves
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Fri, 21 Oct 2022 01:02:20 +0000 (21:02 -0400)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sat, 22 Oct 2022 18:59:52 +0000 (14:59 -0400)
commit5bd245d2cd9e1b4c6552432bdf09a1fd8cc68306
treecbbe2d27fd565caa051977a1dd229083e0c2ab1c
parent1521d9c58c1d9a3bbaf1f572920e5a7cbb1da4d3
agx: Handle 64-bit moves

lower_resinfo generates some 64-bit math, so we need to handle it. Even
though we don't have native 64-bit moves, it's convenient to pretend we
do to avoid special cases in the IR. In particular, modelling 64-bit
mov_imm in the IR means our existing small constant propagation code
works, with zero-extension from 8->64.

Fixes dEQP-GLES3.functional.texture.units.2_units.only_2d_array.*

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18813>
src/asahi/compiler/agx_compile.c
src/asahi/compiler/agx_compiler.h
src/asahi/compiler/agx_lower_64bit.c [new file with mode: 0644]
src/asahi/compiler/agx_optimizer.c
src/asahi/compiler/agx_print.c
src/asahi/compiler/meson.build