aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <uros@kss-loka.si>2004-12-13 07:38:45 +0100
committerUros Bizjak <uros@gcc.gnu.org>2004-12-13 07:38:45 +0100
commit4049b3760e3141906fa86ab9071d4bd86c6a8b13 (patch)
tree926f75a081dc26e0a8897473288e784b81345f93 /gcc
parentb80a3161c35f02b31117ad49b8eb7a88dfc73b36 (diff)
downloadgcc-4049b3760e3141906fa86ab9071d4bd86c6a8b13.zip
gcc-4049b3760e3141906fa86ab9071d4bd86c6a8b13.tar.gz
gcc-4049b3760e3141906fa86ab9071d4bd86c6a8b13.tar.bz2
re PR target/14941 (i386.md strangeness in sse2_movsd)
PR target/14941 PR target/18503 * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd): Fix wrong vec_merge selector bitmask. From-SVN: r92077
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/i386.md6
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b62d162..5f22db1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+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
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 135017f..f2c3c44 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -20819,7 +20819,7 @@
(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")
@@ -24249,7 +24249,7 @@
(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")
@@ -24281,7 +24281,7 @@
(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}