Hi! This patch allows to vectorize negations using 32-byte vectors.
2011-10-14 Jakub Jelinek <ja...@redhat.com> * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead of VI_128. --- gcc/config/i386/sse.md.jj 2011-10-14 13:05:58.000000000 +0200 +++ gcc/config/i386/sse.md 2011-10-14 13:56:55.000000000 +0200 @@ -4860,10 +4860,10 @@ (define_insn "*vec_concatv2df" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define_expand "neg<mode>2" - [(set (match_operand:VI_128 0 "register_operand" "") - (minus:VI_128 + [(set (match_operand:VI_AVX2 0 "register_operand" "") + (minus:VI_AVX2 (match_dup 2) - (match_operand:VI_128 1 "nonimmediate_operand" "")))] + (match_operand:VI_AVX2 1 "nonimmediate_operand" "")))] "TARGET_SSE2" "operands[2] = force_reg (<MODE>mode, CONST0_RTX (<MODE>mode));") Jakub