+2004-12-13 Uros Bizjak <uros@kss-loka.si>
+
+ PR target/14941
+ PR target/18503
+ * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd):
+ Fix wrong vec_merge selector bitmask.
+
2004-12-12 Richard Henderson <rth@redhat.com>
PR rtl-opt/17186
(vec_merge:V4SF
(match_operand:V4SF 1 "register_operand" "0")
(match_operand:V4SF 2 "register_operand" "x")
- (const_int 1)))]
+ (const_int 14)))]
"TARGET_SSE"
"movss\t{%2, %0|%0, %2}"
[(set_attr "type" "ssemov")
(vec_merge:V2DF
(match_operand:V2DF 1 "nonimmediate_operand" "0,0")
(match_operand:V2DF 2 "nonimmediate_operand" "m,x")
- (const_int 2)))]
+ (const_int 1)))]
"TARGET_SSE2 && (GET_CODE (operands[1]) == MEM || GET_CODE (operands[2]) == MEM)"
"movhpd\t{%2, %0|%0, %2}"
[(set_attr "type" "ssecvt")
(vec_merge:V2DF
(match_operand:V2DF 1 "nonimmediate_operand" "0,0,0")
(match_operand:V2DF 2 "nonimmediate_operand" "x,m,x")
- (const_int 1)))]
+ (const_int 2)))]
"TARGET_SSE2 && ix86_binary_operator_ok (UNKNOWN, V2DFmode, operands)"
"@movsd\t{%2, %0|%0, %2}
movlpd\t{%2, %0|%0, %2}