aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarc Glisse <marc.glisse@inria.fr>2014-06-22 11:16:35 +0200
committerMarc Glisse <glisse@gcc.gnu.org>2014-06-22 09:16:35 +0000
commit43c5fcfc0e6d185e7bbfdc2421c34db646c6f999 (patch)
tree9a341d011eee7dc8deef8560c7cbbc060ba44fc9 /gcc
parentf7716f89b333410c6963230bcca6d4a888762f40 (diff)
downloadgcc-43c5fcfc0e6d185e7bbfdc2421c34db646c6f999.zip
gcc-43c5fcfc0e6d185e7bbfdc2421c34db646c6f999.tar.gz
gcc-43c5fcfc0e6d185e7bbfdc2421c34db646c6f999.tar.bz2
re PR target/61503 (RTL representation of i386 shrdl instruction is incorrect?)
2014-06-22 Marc Glisse <marc.glisse@inria.fr> PR target/61503 * config/i386/i386.md (x86_64_shrd, x86_shrd, ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt. From-SVN: r211873
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.md8
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 27e294a..5ac7e78 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-06-22 Marc Glisse <marc.glisse@inria.fr>
+
+ PR target/61503
+ * config/i386/i386.md (x86_64_shrd, x86_shrd,
+ ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
+
2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/nios2/nios2.c: Include "builtins.h".
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 7cb8964..44c7a0a 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -9608,7 +9608,7 @@
(define_insn "x86_64_shrd"
[(set (match_operand:DI 0 "nonimmediate_operand" "+r*m")
- (ior:DI (ashiftrt:DI (match_dup 0)
+ (ior:DI (lshiftrt:DI (match_dup 0)
(match_operand:QI 2 "nonmemory_operand" "Jc"))
(ashift:DI (match_operand:DI 1 "register_operand" "r")
(minus:QI (const_int 64) (match_dup 2)))))
@@ -9624,7 +9624,7 @@
(define_insn "x86_shrd"
[(set (match_operand:SI 0 "nonimmediate_operand" "+r*m")
- (ior:SI (ashiftrt:SI (match_dup 0)
+ (ior:SI (lshiftrt:SI (match_dup 0)
(match_operand:QI 2 "nonmemory_operand" "Ic"))
(ashift:SI (match_operand:SI 1 "register_operand" "r")
(minus:QI (const_int 32) (match_dup 2)))))
@@ -10076,13 +10076,13 @@
[(set (match_dup 3) (match_dup 4))
(parallel
[(set (match_dup 4)
- (ior:DWIH (ashiftrt:DWIH (match_dup 4) (match_dup 2))
+ (ior:DWIH (lshiftrt:DWIH (match_dup 4) (match_dup 2))
(ashift:DWIH (match_dup 5)
(minus:QI (match_dup 6) (match_dup 2)))))
(clobber (reg:CC FLAGS_REG))])
(parallel
[(set (match_dup 5)
- (ior:DWIH (ashiftrt:DWIH (match_dup 5) (match_dup 2))
+ (ior:DWIH (lshiftrt:DWIH (match_dup 5) (match_dup 2))
(ashift:DWIH (match_dup 3)
(minus:QI (match_dup 6) (match_dup 2)))))
(clobber (reg:CC FLAGS_REG))])]