Commit 43c5fcfc by Marc Glisse Committed by Marc Glisse

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
parent f7716f89
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> 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/nios2/nios2.c: Include "builtins.h". * config/nios2/nios2.c: Include "builtins.h".
......
...@@ -9608,7 +9608,7 @@ ...@@ -9608,7 +9608,7 @@
(define_insn "x86_64_shrd" (define_insn "x86_64_shrd"
[(set (match_operand:DI 0 "nonimmediate_operand" "+r*m") [(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")) (match_operand:QI 2 "nonmemory_operand" "Jc"))
(ashift:DI (match_operand:DI 1 "register_operand" "r") (ashift:DI (match_operand:DI 1 "register_operand" "r")
(minus:QI (const_int 64) (match_dup 2))))) (minus:QI (const_int 64) (match_dup 2)))))
...@@ -9624,7 +9624,7 @@ ...@@ -9624,7 +9624,7 @@
(define_insn "x86_shrd" (define_insn "x86_shrd"
[(set (match_operand:SI 0 "nonimmediate_operand" "+r*m") [(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")) (match_operand:QI 2 "nonmemory_operand" "Ic"))
(ashift:SI (match_operand:SI 1 "register_operand" "r") (ashift:SI (match_operand:SI 1 "register_operand" "r")
(minus:QI (const_int 32) (match_dup 2))))) (minus:QI (const_int 32) (match_dup 2)))))
...@@ -10076,13 +10076,13 @@ ...@@ -10076,13 +10076,13 @@
[(set (match_dup 3) (match_dup 4)) [(set (match_dup 3) (match_dup 4))
(parallel (parallel
[(set (match_dup 4) [(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) (ashift:DWIH (match_dup 5)
(minus:QI (match_dup 6) (match_dup 2))))) (minus:QI (match_dup 6) (match_dup 2)))))
(clobber (reg:CC FLAGS_REG))]) (clobber (reg:CC FLAGS_REG))])
(parallel (parallel
[(set (match_dup 5) [(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) (ashift:DWIH (match_dup 3)
(minus:QI (match_dup 6) (match_dup 2))))) (minus:QI (match_dup 6) (match_dup 2)))))
(clobber (reg:CC FLAGS_REG))])] (clobber (reg:CC FLAGS_REG))])]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment