Commit ae21215e by John David Anglin Committed by John David Anglin

re PR middle-end/25586 (FAIL: gfortran.dg/cray_pointers_2.f90 at -O2 and above)

	PR fortran/25586
	* pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point
	store patterns.

From-SVN: r109166
parent 3bc77af7
2005-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR fortran/25586
* pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point
store patterns.
2005-12-29 Mike Stump <mrs@apple.com> 2005-12-29 Mike Stump <mrs@apple.com>
* doc/invoke.texi (Objective-C and Objective-C++ Dialect Options * doc/invoke.texi (Objective-C and Objective-C++ Dialect Options
......
...@@ -2421,9 +2421,9 @@ ...@@ -2421,9 +2421,9 @@
(match_operand:SI 3 "register_operand" ""))] (match_operand:SI 3 "register_operand" ""))]
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& REG_OK_FOR_BASE_P (operands[1]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_INDEX_P (operands[1])
|| (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) && REG_OK_FOR_BASE_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:SI (plus:SI (match_dup 1) (match_dup 2))) [(set (mem:SI (plus:SI (match_dup 1) (match_dup 2)))
(match_dup 3)) (match_dup 3))
...@@ -2438,9 +2438,9 @@ ...@@ -2438,9 +2438,9 @@
(match_operand:SI 3 "register_operand" ""))] (match_operand:SI 3 "register_operand" ""))]
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& REG_OK_FOR_BASE_P (operands[2]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_BASE_P (operands[1])
|| (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) && REG_OK_FOR_INDEX_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:SI (plus:SI (match_dup 2) (match_dup 1))) [(set (mem:SI (plus:SI (match_dup 2) (match_dup 1)))
(match_dup 3)) (match_dup 3))
...@@ -2456,9 +2456,9 @@ ...@@ -2456,9 +2456,9 @@
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& TARGET_64BIT && TARGET_64BIT
&& REG_OK_FOR_BASE_P (operands[1]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_INDEX_P (operands[1])
|| (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) && REG_OK_FOR_BASE_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:SI (plus:DI (match_dup 1) (match_dup 2))) [(set (mem:SI (plus:DI (match_dup 1) (match_dup 2)))
(match_dup 3)) (match_dup 3))
...@@ -2474,9 +2474,9 @@ ...@@ -2474,9 +2474,9 @@
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& TARGET_64BIT && TARGET_64BIT
&& REG_OK_FOR_BASE_P (operands[2]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_BASE_P (operands[1])
|| (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) && REG_OK_FOR_INDEX_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:SI (plus:DI (match_dup 2) (match_dup 1))) [(set (mem:SI (plus:DI (match_dup 2) (match_dup 1)))
(match_dup 3)) (match_dup 3))
...@@ -3948,9 +3948,9 @@ ...@@ -3948,9 +3948,9 @@
(match_operand:DF 3 "register_operand" ""))] (match_operand:DF 3 "register_operand" ""))]
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& REG_OK_FOR_BASE_P (operands[1]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_INDEX_P (operands[1])
|| (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) && REG_OK_FOR_BASE_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:DF (plus:SI (match_dup 1) (match_dup 2))) [(set (mem:DF (plus:SI (match_dup 1) (match_dup 2)))
(match_dup 3)) (match_dup 3))
...@@ -3965,9 +3965,9 @@ ...@@ -3965,9 +3965,9 @@
(match_operand:DF 3 "register_operand" ""))] (match_operand:DF 3 "register_operand" ""))]
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& REG_OK_FOR_BASE_P (operands[2]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_BASE_P (operands[1])
|| (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) && REG_OK_FOR_INDEX_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:DF (plus:SI (match_dup 2) (match_dup 1))) [(set (mem:DF (plus:SI (match_dup 2) (match_dup 1)))
(match_dup 3)) (match_dup 3))
...@@ -3983,9 +3983,9 @@ ...@@ -3983,9 +3983,9 @@
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& TARGET_64BIT && TARGET_64BIT
&& REG_OK_FOR_BASE_P (operands[1]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_INDEX_P (operands[1])
|| (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) && REG_OK_FOR_BASE_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:DF (plus:DI (match_dup 1) (match_dup 2))) [(set (mem:DF (plus:DI (match_dup 1) (match_dup 2)))
(match_dup 3)) (match_dup 3))
...@@ -4001,9 +4001,9 @@ ...@@ -4001,9 +4001,9 @@
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& TARGET_64BIT && TARGET_64BIT
&& REG_OK_FOR_BASE_P (operands[2]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_BASE_P (operands[1])
|| (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) && REG_OK_FOR_INDEX_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:DF (plus:DI (match_dup 2) (match_dup 1))) [(set (mem:DF (plus:DI (match_dup 2) (match_dup 1)))
(match_dup 3)) (match_dup 3))
...@@ -4253,9 +4253,9 @@ ...@@ -4253,9 +4253,9 @@
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& TARGET_64BIT && TARGET_64BIT
&& REG_OK_FOR_BASE_P (operands[1]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_INDEX_P (operands[1])
|| (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) && REG_OK_FOR_BASE_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:DI (plus:DI (match_dup 1) (match_dup 2))) [(set (mem:DI (plus:DI (match_dup 1) (match_dup 2)))
(match_dup 3)) (match_dup 3))
...@@ -4271,9 +4271,9 @@ ...@@ -4271,9 +4271,9 @@
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& TARGET_64BIT && TARGET_64BIT
&& REG_OK_FOR_BASE_P (operands[2]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_BASE_P (operands[1])
|| (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) && REG_OK_FOR_INDEX_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:DI (plus:DI (match_dup 2) (match_dup 1))) [(set (mem:DI (plus:DI (match_dup 2) (match_dup 1)))
(match_dup 3)) (match_dup 3))
...@@ -4486,9 +4486,9 @@ ...@@ -4486,9 +4486,9 @@
(match_operand:SF 3 "register_operand" ""))] (match_operand:SF 3 "register_operand" ""))]
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& REG_OK_FOR_BASE_P (operands[1]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_INDEX_P (operands[1])
|| (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) && REG_OK_FOR_BASE_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:SF (plus:SI (match_dup 1) (match_dup 2))) [(set (mem:SF (plus:SI (match_dup 1) (match_dup 2)))
(match_dup 3)) (match_dup 3))
...@@ -4503,9 +4503,9 @@ ...@@ -4503,9 +4503,9 @@
(match_operand:SF 3 "register_operand" ""))] (match_operand:SF 3 "register_operand" ""))]
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& REG_OK_FOR_BASE_P (operands[2]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_BASE_P (operands[1])
|| (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) && REG_OK_FOR_INDEX_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:SF (plus:SI (match_dup 2) (match_dup 1))) [(set (mem:SF (plus:SI (match_dup 2) (match_dup 1)))
(match_dup 3)) (match_dup 3))
...@@ -4521,9 +4521,9 @@ ...@@ -4521,9 +4521,9 @@
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& TARGET_64BIT && TARGET_64BIT
&& REG_OK_FOR_BASE_P (operands[1]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_INDEX_P (operands[1])
|| (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) && REG_OK_FOR_BASE_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:SF (plus:DI (match_dup 1) (match_dup 2))) [(set (mem:SF (plus:DI (match_dup 1) (match_dup 2)))
(match_dup 3)) (match_dup 3))
...@@ -4539,9 +4539,9 @@ ...@@ -4539,9 +4539,9 @@
"!TARGET_SOFT_FLOAT "!TARGET_SOFT_FLOAT
&& !TARGET_DISABLE_INDEXING && !TARGET_DISABLE_INDEXING
&& TARGET_64BIT && TARGET_64BIT
&& REG_OK_FOR_BASE_P (operands[2]) && TARGET_NO_SPACE_REGS
&& (TARGET_NO_SPACE_REGS && REG_OK_FOR_BASE_P (operands[1])
|| (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) && REG_OK_FOR_INDEX_P (operands[2])
&& FP_REGNO_P (REGNO (operands[3]))" && FP_REGNO_P (REGNO (operands[3]))"
[(set (mem:SF (plus:DI (match_dup 2) (match_dup 1))) [(set (mem:SF (plus:DI (match_dup 2) (match_dup 1)))
(match_dup 3)) (match_dup 3))
......
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