Revert "ac: reassociate FP expressions for inexact instructions for radeonsi"
authorMarek Olšák <marek.olsak@amd.com>
Thu, 30 Apr 2020 07:57:50 +0000 (03:57 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 4 May 2020 15:51:37 +0000 (11:51 -0400)
This reverts commit cf2f3c27533d8721abed4cdd4dfb00d4d53e8a0f.

It breaks shadows in Unigine Superposition.

Fixes: cf2f3c27533d8721abed4cdd4dfb00d4d53e8a0f
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4837>

src/amd/llvm/ac_llvm_helper.cpp

index 97b9a1a035a09e34fa3181f678f94040a34e1950..f5383344dd4f3c37348449d0eb28c61dd6d3699d 100644 (file)
@@ -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);
 }