From 518b2d548fb055ab4bc8836705bd23351c2f773e Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 26 Aug 2024 14:22:18 -0500 Subject: [PATCH] nir: Preserve fp_fast_math in nir_opt_vectorize() Fixes the following CTS tests on NVK: dEQP-VK.spirv_assembly.instruction.*.float_controls.fp16.generated_args.signed_zero_sub_var_preserve* Reviewed-by: Alyssa Rosenzweig Part-of: --- src/compiler/nir/nir_opt_vectorize.c | 5 +++++ src/nouveau/ci/nvk-ga106-fails.txt | 7 ------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/compiler/nir/nir_opt_vectorize.c b/src/compiler/nir/nir_opt_vectorize.c index fad5b6896db..e03cd194bfd 100644 --- a/src/compiler/nir/nir_opt_vectorize.c +++ b/src/compiler/nir/nir_opt_vectorize.c @@ -455,6 +455,11 @@ instr_try_combine_alu(struct set *instr_set, nir_alu_instr *alu1, nir_alu_instr */ new_alu->exact = alu1->exact || alu2->exact; + /* fp_fast_math is a set of FLOAT_CONTROLS_*_PRESERVE_*. Preserve anything + * preserved by either instruction. + */ + new_alu->fp_fast_math = alu1->fp_fast_math | alu2->fp_fast_math; + /* If all channels don't wrap, we can say that the whole vector doesn't * wrap. */ diff --git a/src/nouveau/ci/nvk-ga106-fails.txt b/src/nouveau/ci/nvk-ga106-fails.txt index 64ab6094263..b8debcf27f6 100644 --- a/src/nouveau/ci/nvk-ga106-fails.txt +++ b/src/nouveau/ci/nvk-ga106-fails.txt @@ -272,10 +272,3 @@ dEQP-VK.pipeline.shader_object_linked_binary.pipeline_cache.robustness2.storage, dEQP-VK.pipeline.shader_object_linked_spirv.pipeline_cache.robustness2.storage,Fail dEQP-VK.pipeline.shader_object_unlinked_binary.pipeline_cache.robustness2.storage,Fail dEQP-VK.pipeline.shader_object_unlinked_spirv.pipeline_cache.robustness2.storage,Fail - -dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_zero_sub_var_preserve,Fail -dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_zero_sub_var_preserve_nostorage,Fail -dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_sub_var_preserve_frag,Fail -dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_sub_var_preserve_nostorage_frag,Fail -dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_sub_var_preserve_nostorage_vert,Fail -dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_sub_var_preserve_vert,Fail