http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56309



Uros Bizjak <ubizjak at gmail dot com> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

            Summary|-O3 optimizer generates     |conditional moves instead

                   |conditional moves instead   |of compare and branch

                   |of compare and branch       |result in almost 2x slower

                   |resulting in almost 2x      |code

                   |slower code                 |



--- Comment #25 from Uros Bizjak <ubizjak at gmail dot com> 2013-02-17 08:35:17 
UTC ---

(In reply to comment #21)

> (In reply to comment #18)



> But in this case we are giving up vectorization for some cases, aren't we?



Yes, and please note that vectorized conditional move doesn't result in a cmov

instruction, but in a sequence of sse logic isns. So, as far as x86 targets are

concerned, this bug has nothing to do with a vectorizer.



Maybe we should decompose scalar cmoves into the same sequence?

Reply via email to