Hello! 2011-08-27 Uros Bizjak <ubiz...@gmail.com>
* config/i386/sse.md (*absneg<mode>2): Fix split condition. (vec_extract_lo_<mode>): Prevent both operands in memory. (vec_extract_lo_v16hi): Ditto. (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint. Tested on x86_64-pc-linux-gnu {,-m32}, committed to mainline SVN and 4.6 branch. Uros.
Index: sse.md =================================================================== --- sse.md (revision 178130) +++ sse.md (working copy) @@ -648,7 +648,7 @@ (use (match_operand:VF 2 "nonimmediate_operand" "xm,0, xm,x"))] "TARGET_SSE" "#" - "reload_completed" + "&& reload_completed" [(const_int 0)] { enum rtx_code absneg_op; @@ -3708,7 +3708,7 @@ (vec_select:<ssehalfvecmode> (match_operand:VI8F_256 1 "nonimmediate_operand" "xm,x") (parallel [(const_int 0) (const_int 1)])))] - "TARGET_AVX" + "TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "#" "&& reload_completed" [(const_int 0)] @@ -3742,7 +3742,7 @@ (match_operand:VI4F_256 1 "nonimmediate_operand" "xm,x") (parallel [(const_int 0) (const_int 1) (const_int 2) (const_int 3)])))] - "TARGET_AVX" + "TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "#" "&& reload_completed" [(const_int 0)] @@ -3779,7 +3779,7 @@ (const_int 2) (const_int 3) (const_int 4) (const_int 5) (const_int 6) (const_int 7)])))] - "TARGET_AVX" + "TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "#" "&& reload_completed" [(const_int 0)] @@ -3822,7 +3822,7 @@ (const_int 10) (const_int 11) (const_int 12) (const_int 13) (const_int 14) (const_int 15)])))] - "TARGET_AVX" + "TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "#" "&& reload_completed" [(const_int 0)] @@ -3876,9 +3876,9 @@ (vec_select:SF (match_operand:V4SF 1 "memory_operand" "o") (parallel [(match_operand 2 "const_0_to_3_operand" "n")])))] - "" + "TARGET_SSE" "#" - "reload_completed" + "&& reload_completed" [(const_int 0)] { int i = INTVAL (operands[2]);