aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2012-10-06 00:33:52 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2012-10-06 00:33:52 +0000
commit8f937c1892a07fca6aae0b8259062590bd61101c (patch)
tree61caafb187cf21a3a14318b12ea2ebb5714ba75d /gcc
parent0f2426b17536d15098664ecc11944c0433141098 (diff)
downloadgcc-8f937c1892a07fca6aae0b8259062590bd61101c.zip
gcc-8f937c1892a07fca6aae0b8259062590bd61101c.tar.gz
gcc-8f937c1892a07fca6aae0b8259062590bd61101c.tar.bz2
re PR rtl-optimization/54739 (FAIL: gcc.dg/lower-subreg-1.c scan-rtl-dump subreg1 "Splitting reg")
PR rtl-optimization/54739 * config/pa/pa.md: Remove DImode and, not and, ior and xor patterns for 32-bit targets. Adjust expanders. From-SVN: r192152
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/pa/pa.md60
2 files changed, 10 insertions, 54 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2261ec4..6178f33 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2012-10-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+ PR rtl-optimization/54739
+ * config/pa/pa.md: Remove DImode and, not and, ior and xor patterns
+ for 32-bit targets. Adjust expanders.
+
* config/pa/pa.md: Adjust unamed HImode add insn pattern.
2012-10-05 Oleg Endo <olegendo@gcc.gnu.org>
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 4595357..80c40f5 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -5623,22 +5623,8 @@
[(set (match_operand:DI 0 "register_operand" "")
(and:DI (match_operand:DI 1 "register_operand" "")
(match_operand:DI 2 "and_operand" "")))]
- ""
- "
-{
- /* Both operands must be register operands. */
- if (!TARGET_64BIT && !register_operand (operands[2], DImode))
- FAIL;
-}")
-
-(define_insn ""
- [(set (match_operand:DI 0 "register_operand" "=r")
- (and:DI (match_operand:DI 1 "register_operand" "%r")
- (match_operand:DI 2 "register_operand" "r")))]
- "!TARGET_64BIT"
- "and %1,%2,%0\;and %R1,%R2,%R0"
- [(set_attr "type" "binary")
- (set_attr "length" "8")])
+ "TARGET_64BIT"
+ "")
(define_insn ""
[(set (match_operand:DI 0 "register_operand" "=r,r")
@@ -5664,15 +5650,6 @@
[(set (match_operand:DI 0 "register_operand" "=r")
(and:DI (not:DI (match_operand:DI 1 "register_operand" "r"))
(match_operand:DI 2 "register_operand" "r")))]
- "!TARGET_64BIT"
- "andcm %2,%1,%0\;andcm %R2,%R1,%R0"
- [(set_attr "type" "binary")
- (set_attr "length" "8")])
-
-(define_insn ""
- [(set (match_operand:DI 0 "register_operand" "=r")
- (and:DI (not:DI (match_operand:DI 1 "register_operand" "r"))
- (match_operand:DI 2 "register_operand" "r")))]
"TARGET_64BIT"
"andcm %2,%1,%0"
[(set_attr "type" "binary")
@@ -5691,22 +5668,8 @@
[(set (match_operand:DI 0 "register_operand" "")
(ior:DI (match_operand:DI 1 "register_operand" "")
(match_operand:DI 2 "reg_or_cint_ior_operand" "")))]
- ""
- "
-{
- /* Both operands must be register operands. */
- if (!TARGET_64BIT && !register_operand (operands[2], DImode))
- FAIL;
-}")
-
-(define_insn ""
- [(set (match_operand:DI 0 "register_operand" "=r")
- (ior:DI (match_operand:DI 1 "register_operand" "%r")
- (match_operand:DI 2 "register_operand" "r")))]
- "!TARGET_64BIT"
- "or %1,%2,%0\;or %R1,%R2,%R0"
- [(set_attr "type" "binary")
- (set_attr "length" "8")])
+ "TARGET_64BIT"
+ "")
(define_insn ""
[(set (match_operand:DI 0 "register_operand" "=r,r")
@@ -5756,19 +5719,8 @@
[(set (match_operand:DI 0 "register_operand" "")
(xor:DI (match_operand:DI 1 "register_operand" "")
(match_operand:DI 2 "register_operand" "")))]
- ""
- "
-{
-}")
-
-(define_insn ""
- [(set (match_operand:DI 0 "register_operand" "=r")
- (xor:DI (match_operand:DI 1 "register_operand" "%r")
- (match_operand:DI 2 "register_operand" "r")))]
- "!TARGET_64BIT"
- "xor %1,%2,%0\;xor %R1,%R2,%R0"
- [(set_attr "type" "binary")
- (set_attr "length" "8")])
+ "TARGET_64BIT"
+ "")
(define_insn ""
[(set (match_operand:DI 0 "register_operand" "=r")