From: John David Anglin Date: Fri, 30 Dec 2005 05:54:17 +0000 (+0000) Subject: re PR middle-end/25586 (FAIL: gfortran.dg/cray_pointers_2.f90 at -O2 and above) X-Git-Tag: releases/gcc-3.4.6~190 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=76174d0742b117e2f2affed9e97d0498d69d5da7;p=thirdparty%2Fgcc.git 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: r109169 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index beda7a9e81e2..f6ef23390c8a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-12-30 John David Anglin + + PR fortran/25586 + * pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point + store patterns. + 2005-12-29 Alan Modra PR target/25572 diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index c440967ff4cb..f0741d2e23bd 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -2378,9 +2378,9 @@ (match_operand:SI 3 "register_operand" ""))] "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING - && REG_OK_FOR_BASE_P (operands[1]) - && (TARGET_NO_SPACE_REGS - || (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_INDEX_P (operands[1]) + && REG_OK_FOR_BASE_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:SI (plus:SI (match_dup 1) (match_dup 2))) (match_dup 3)) @@ -2395,9 +2395,9 @@ (match_operand:SI 3 "register_operand" ""))] "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING - && REG_OK_FOR_BASE_P (operands[2]) - && (TARGET_NO_SPACE_REGS - || (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_BASE_P (operands[1]) + && REG_OK_FOR_INDEX_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:SI (plus:SI (match_dup 2) (match_dup 1))) (match_dup 3)) @@ -2413,9 +2413,9 @@ "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING && TARGET_64BIT - && REG_OK_FOR_BASE_P (operands[1]) - && (TARGET_NO_SPACE_REGS - || (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_INDEX_P (operands[1]) + && REG_OK_FOR_BASE_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:SI (plus:DI (match_dup 1) (match_dup 2))) (match_dup 3)) @@ -2431,9 +2431,9 @@ "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING && TARGET_64BIT - && REG_OK_FOR_BASE_P (operands[2]) - && (TARGET_NO_SPACE_REGS - || (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_BASE_P (operands[1]) + && REG_OK_FOR_INDEX_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:SI (plus:DI (match_dup 2) (match_dup 1))) (match_dup 3)) @@ -3896,9 +3896,9 @@ (match_operand:DF 3 "register_operand" ""))] "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING - && REG_OK_FOR_BASE_P (operands[1]) - && (TARGET_NO_SPACE_REGS - || (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_INDEX_P (operands[1]) + && REG_OK_FOR_BASE_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:DF (plus:SI (match_dup 1) (match_dup 2))) (match_dup 3)) @@ -3913,9 +3913,9 @@ (match_operand:DF 3 "register_operand" ""))] "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING - && REG_OK_FOR_BASE_P (operands[2]) - && (TARGET_NO_SPACE_REGS - || (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_BASE_P (operands[1]) + && REG_OK_FOR_INDEX_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:DF (plus:SI (match_dup 2) (match_dup 1))) (match_dup 3)) @@ -3931,9 +3931,9 @@ "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING && TARGET_64BIT - && REG_OK_FOR_BASE_P (operands[1]) - && (TARGET_NO_SPACE_REGS - || (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_INDEX_P (operands[1]) + && REG_OK_FOR_BASE_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:DF (plus:DI (match_dup 1) (match_dup 2))) (match_dup 3)) @@ -3949,9 +3949,9 @@ "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING && TARGET_64BIT - && REG_OK_FOR_BASE_P (operands[2]) - && (TARGET_NO_SPACE_REGS - || (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_BASE_P (operands[1]) + && REG_OK_FOR_INDEX_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:DF (plus:DI (match_dup 2) (match_dup 1))) (match_dup 3)) @@ -4179,9 +4179,9 @@ "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING && TARGET_64BIT - && REG_OK_FOR_BASE_P (operands[1]) - && (TARGET_NO_SPACE_REGS - || (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_INDEX_P (operands[1]) + && REG_OK_FOR_BASE_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:DI (plus:DI (match_dup 1) (match_dup 2))) (match_dup 3)) @@ -4197,9 +4197,9 @@ "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING && TARGET_64BIT - && REG_OK_FOR_BASE_P (operands[2]) - && (TARGET_NO_SPACE_REGS - || (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_BASE_P (operands[1]) + && REG_OK_FOR_INDEX_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:DI (plus:DI (match_dup 2) (match_dup 1))) (match_dup 3)) @@ -4411,9 +4411,9 @@ (match_operand:SF 3 "register_operand" ""))] "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING - && REG_OK_FOR_BASE_P (operands[1]) - && (TARGET_NO_SPACE_REGS - || (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_INDEX_P (operands[1]) + && REG_OK_FOR_BASE_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:SF (plus:SI (match_dup 1) (match_dup 2))) (match_dup 3)) @@ -4428,9 +4428,9 @@ (match_operand:SF 3 "register_operand" ""))] "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING - && REG_OK_FOR_BASE_P (operands[2]) - && (TARGET_NO_SPACE_REGS - || (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_BASE_P (operands[1]) + && REG_OK_FOR_INDEX_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:SF (plus:SI (match_dup 2) (match_dup 1))) (match_dup 3)) @@ -4446,9 +4446,9 @@ "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING && TARGET_64BIT - && REG_OK_FOR_BASE_P (operands[1]) - && (TARGET_NO_SPACE_REGS - || (!REG_POINTER (operands[1]) && REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_INDEX_P (operands[1]) + && REG_OK_FOR_BASE_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:SF (plus:DI (match_dup 1) (match_dup 2))) (match_dup 3)) @@ -4464,9 +4464,9 @@ "!TARGET_SOFT_FLOAT && !TARGET_DISABLE_INDEXING && TARGET_64BIT - && REG_OK_FOR_BASE_P (operands[2]) - && (TARGET_NO_SPACE_REGS - || (REG_POINTER (operands[1]) && !REG_POINTER (operands[2]))) + && TARGET_NO_SPACE_REGS + && REG_OK_FOR_BASE_P (operands[1]) + && REG_OK_FOR_INDEX_P (operands[2]) && FP_REGNO_P (REGNO (operands[3]))" [(set (mem:SF (plus:DI (match_dup 2) (match_dup 1))) (match_dup 3))