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?