https://bugs.kde.org/show_bug.cgi?id=451903

Dmitry Kazakov <dimul...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dimul...@gmail.com

--- Comment #1 from Dmitry Kazakov <dimul...@gmail.com> ---
Hi, amyspark!

There is a comment about that in KisFixedPoint telling exctly about that:

    KisFixedPoint& operator*=(const KisFixedPoint& x) {
        /**
         * Until C++20 `d >>= 8` is "implementation defined" for negative `d`.
         * But we have a unittest that confirms that the our compiler handles
         * that in an expected way
         */

        d *= x.d;
        d >>= 8;
        return *this;
    }

Since C++20 this code will become valid as it is, and it seems to be valid at
least on AMD64 in the compilers we use. Do you have an idea if we can rewrite
that in C++14 or C++17 without sacrificing performance? This code is used in
the hottest path in the transform tool, so doing extra work is not desirable.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to