From: Marek Olšák Date: Thu, 30 Apr 2020 07:57:50 +0000 (-0400) Subject: Revert "ac: reassociate FP expressions for inexact instructions for radeonsi" X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b97cc41aa203fd9fb9f5cf5f5aa7fd40f567917d;p=mesa.git Revert "ac: reassociate FP expressions for inexact instructions for radeonsi" This reverts commit cf2f3c27533d8721abed4cdd4dfb00d4d53e8a0f. It breaks shadows in Unigine Superposition. Fixes: cf2f3c27533d8721abed4cdd4dfb00d4d53e8a0f Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- diff --git a/src/amd/llvm/ac_llvm_helper.cpp b/src/amd/llvm/ac_llvm_helper.cpp index 97b9a1a035a..f5383344dd4 100644 --- a/src/amd/llvm/ac_llvm_helper.cpp +++ b/src/amd/llvm/ac_llvm_helper.cpp @@ -101,11 +101,6 @@ LLVMBuilderRef ac_create_builder(LLVMContextRef ctx, */ flags.setAllowContract(); /* contract */ - /* Allow reassociation transformations for floating-point - * instructions. This may dramatically change results. - */ - flags.setAllowReassoc(); /* reassoc */ - llvm::unwrap(builder)->setFastMathFlags(flags); break; } @@ -118,13 +113,11 @@ bool ac_disable_inexact_math(LLVMBuilderRef builder) { auto *b = llvm::unwrap(builder); llvm::FastMathFlags flags = b->getFastMathFlags(); - assert(flags.allowContract() == flags.allowReassoc()); if (!flags.allowContract()) return false; flags.setAllowContract(false); - flags.setAllowReassoc(false); b->setFastMathFlags(flags); return true; } @@ -133,13 +126,11 @@ void ac_restore_inexact_math(LLVMBuilderRef builder, bool value) { auto *b = llvm::unwrap(builder); llvm::FastMathFlags flags = b->getFastMathFlags(); - assert(flags.allowContract() == flags.allowReassoc()); if (flags.allowContract() == value) return; flags.setAllowContract(value); - flags.setAllowReassoc(value); b->setFastMathFlags(flags); }