From b97cc41aa203fd9fb9f5cf5f5aa7fd40f567917d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Thu, 30 Apr 2020 03:57:50 -0400 Subject: [PATCH] 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: --- src/amd/llvm/ac_llvm_helper.cpp | 9 --------- 1 file changed, 9 deletions(-) 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); } -- 2.30.2