http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50875
--- Comment #6 from Uros Bizjak <ubizjak at gmail dot com> 2011-10-26 22:52:50 UTC --- Following (untested) patch fixes the failure for me: Index: sse.md =================================================================== --- sse.md (revision 180528) +++ sse.md (working copy) @@ -4231,12 +4231,11 @@ [(set (match_operand:V4DF 0 "register_operand" "=x,x") (vec_select:V4DF (vec_concat:V8DF - (match_operand:V4DF 1 "nonimmediate_operand" "xm,x") + (match_operand:V4DF 1 "nonimmediate_operand" " m,x") (match_operand:V4DF 2 "nonimmediate_operand" " 1,xm")) (parallel [(const_int 0) (const_int 4) (const_int 2) (const_int 6)])))] - "TARGET_AVX - && (!MEM_P (operands[1]) || rtx_equal_p (operands[1], operands[2]))" + "TARGET_AVX" "@ vmovddup\t{%1, %0|%0, %1} vunpcklpd\t{%2, %1, %0|%0, %1, %2}"