Commit 3cdf0c62 by Uros Bizjak

i386.md (unnamed peephole2): Do not force memory operands of arith or logical…

i386.md (unnamed peephole2): Do not force memory operands of arith or logical instructions into registers...

	* config/i386/i386.md (unnamed peephole2): Do not force memory
	operands of arith or logical instructions into registers for
	non-TARGET_READ_MODIFY targets.

	(ffs_cmove): Change operand 0 predicate to register_operand.
	Change operand 1 predicate to nonimmediate_operand.
	(ffsdi2): Ditto.
	(*ffs_no_cmove): Change operand 0 predicate to register_operand.

From-SVN: r141213
parent 73a5f199
...@@ -220,8 +220,8 @@ auto-vectorizer Dorit Nuzman dorit@il.ibm.com ...@@ -220,8 +220,8 @@ auto-vectorizer Dorit Nuzman dorit@il.ibm.com
loop infrastructure Zdenek Dvorak ook@ucw.cz loop infrastructure Zdenek Dvorak ook@ucw.cz
OpenMP Jakub Jelinek jakub@redhat.com OpenMP Jakub Jelinek jakub@redhat.com
Note that individuals who maintain parts of the compiler need approval to check Note that individuals who maintain parts of the compiler need approval to
in changes outside of the parts of the compiler they maintain. check in changes outside of the parts of the compiler they maintain.
Non-Algorithmic Maintainers Non-Algorithmic Maintainers
......
...@@ -15366,9 +15366,9 @@ ...@@ -15366,9 +15366,9 @@
(define_expand "ffs_cmove" (define_expand "ffs_cmove"
[(set (match_dup 2) (const_int -1)) [(set (match_dup 2) (const_int -1))
(parallel [(set (reg:CCZ FLAGS_REG) (parallel [(set (reg:CCZ FLAGS_REG)
(compare:CCZ (match_operand:SI 1 "register_operand" "") (compare:CCZ (match_operand:SI 1 "nonimmediate_operand" "")
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "nonimmediate_operand" "") (set (match_operand:SI 0 "register_operand" "")
(ctz:SI (match_dup 1)))]) (ctz:SI (match_dup 1)))])
(set (match_dup 0) (if_then_else:SI (set (match_dup 0) (if_then_else:SI
(eq (reg:CCZ FLAGS_REG) (const_int 0)) (eq (reg:CCZ FLAGS_REG) (const_int 0))
...@@ -15380,7 +15380,7 @@ ...@@ -15380,7 +15380,7 @@
"operands[2] = gen_reg_rtx (SImode);") "operands[2] = gen_reg_rtx (SImode);")
(define_insn_and_split "*ffs_no_cmove" (define_insn_and_split "*ffs_no_cmove"
[(set (match_operand:SI 0 "nonimmediate_operand" "=r") [(set (match_operand:SI 0 "register_operand" "=r")
(ffs:SI (match_operand:SI 1 "nonimmediate_operand" "rm"))) (ffs:SI (match_operand:SI 1 "nonimmediate_operand" "rm")))
(clobber (match_scratch:SI 2 "=&q")) (clobber (match_scratch:SI 2 "=&q"))
(clobber (reg:CC FLAGS_REG))] (clobber (reg:CC FLAGS_REG))]
...@@ -15416,9 +15416,9 @@ ...@@ -15416,9 +15416,9 @@
(define_expand "ffsdi2" (define_expand "ffsdi2"
[(set (match_dup 2) (const_int -1)) [(set (match_dup 2) (const_int -1))
(parallel [(set (reg:CCZ FLAGS_REG) (parallel [(set (reg:CCZ FLAGS_REG)
(compare:CCZ (match_operand:DI 1 "register_operand" "") (compare:CCZ (match_operand:DI 1 "nonimmediate_operand" "")
(const_int 0))) (const_int 0)))
(set (match_operand:DI 0 "nonimmediate_operand" "") (set (match_operand:DI 0 "register_operand" "")
(ctz:DI (match_dup 1)))]) (ctz:DI (match_dup 1)))])
(set (match_dup 0) (if_then_else:DI (set (match_dup 0) (if_then_else:DI
(eq (reg:CCZ FLAGS_REG) (const_int 0)) (eq (reg:CCZ FLAGS_REG) (const_int 0))
...@@ -20684,7 +20684,7 @@ ...@@ -20684,7 +20684,7 @@
[(match_dup 0) [(match_dup 0)
(match_operand:SI 1 "memory_operand" "")])) (match_operand:SI 1 "memory_operand" "")]))
(clobber (reg:CC FLAGS_REG))])] (clobber (reg:CC FLAGS_REG))])]
"optimize_insn_for_speed_p ()" "optimize_insn_for_speed_p () && ! TARGET_READ_MODIFY"
[(set (match_dup 2) (match_dup 1)) [(set (match_dup 2) (match_dup 1))
(parallel [(set (match_dup 0) (parallel [(set (match_dup 0)
(match_op_dup 3 [(match_dup 0) (match_dup 2)])) (match_op_dup 3 [(match_dup 0) (match_dup 2)]))
......
...@@ -42,13 +42,13 @@ ...@@ -42,13 +42,13 @@
* gfortran.dg/reshape_order_4.f90: Likewise. * gfortran.dg/reshape_order_4.f90: Likewise.
2008-10-15 Jan Sjodin <jan.sjodin@amd.com> 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
Harsha Jagasia <harsha.jagasia@amd.com> Harsha Jagasia <harsha.jagasia@amd.com>
PR tree-optimization/37485 PR tree-optimization/37485
* gcc.dg/graphite/pr37485.c: New. * gcc.dg/graphite/pr37485.c: New.
2008-10-15 Sebastian Pop <sebastian.pop@amd.com> 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
Harsha Jagasia <harsha.jagasia@amd.com> Harsha Jagasia <harsha.jagasia@amd.com>
PR tree-optimization/37828 PR tree-optimization/37828
* testsuite/gcc.dg/graphite/pr37828.c: New. * testsuite/gcc.dg/graphite/pr37828.c: New.
...@@ -75,8 +75,8 @@ ...@@ -75,8 +75,8 @@
2008-10-14 Douglas Gregor <doug.gregor@gmail.com> 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
PR c++/37553 PR c++/37553
* g++.dg/ext/alias-canon2.C: New. * g++.dg/ext/alias-canon2.C: New.
2008-10-13 Jerry DeLisle <jvdelisle@gcc.gnu.org 2008-10-13 Jerry DeLisle <jvdelisle@gcc.gnu.org
......
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