https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65492
--- Comment #12 from Allan Jensen <linux at carewolf dot com> --- I have a very crude fix for this. First though, according to comments in tree-if-conv.c and earlier bugs on the issues. If-conversion is suppposed to be conditional. It performed in a piece of conditionally code only to be used if vectorized. For some reason this version appears to be used. But secondly. If conditional move instructions are generally slower than branches, shouldn't they be avoided during instruction selections? The crude fix is simply placing a 'return false;' in the top of ix86_expand_int_movcc in i386.c. So this case somehow triggers a case where the if-conversion that is supposed to only be used by vectorization gets used anyway, but more generally, i386 shouldn't be generating cmov instructions for conditional moves in the first place for modern architectures (anything newer than core2 and bulldozer). At least not without input from a profile run.