aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2015-06-17 17:18:03 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2015-06-17 17:18:03 +0200
commit82ba6a8e7e8be8714e0976805cf1423b5c885504 (patch)
tree4312059242d4e303ad8672bd0475b4a6427543b0
parentabb226c954fadee4955160f0952e12296fc4a25e (diff)
downloadgcc-82ba6a8e7e8be8714e0976805cf1423b5c885504.zip
gcc-82ba6a8e7e8be8714e0976805cf1423b5c885504.tar.gz
gcc-82ba6a8e7e8be8714e0976805cf1423b5c885504.tar.bz2
rs6000.md (*cmp<mode>_internal1): Rename to...
* config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to... (*cmp<mode>_signed): ... this. (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to... (*cmp<mode>_unsigned): ... this. Remove %b. From-SVN: r224563
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/rs6000.md26
2 files changed, 16 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 77af01c..58a0a2b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2015-06-17 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
+ (*cmp<mode>_signed): ... this.
+ (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
+ (*cmp<mode>_unsigned): ... this. Remove %b.
+
2015-06-17 Andrew MacLeod <amacleod@redhat.com>
* coretypes.h: Include input.h and as-a.h.
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 5d3e04b..6a14ee8 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -10714,7 +10714,7 @@
;; Here are the actual compare insns.
-(define_insn "*cmp<mode>_internal1"
+(define_insn "*cmp<mode>_signed"
[(set (match_operand:CC 0 "cc_reg_operand" "=y")
(compare:CC (match_operand:GPR 1 "gpc_reg_operand" "r")
(match_operand:GPR 2 "reg_or_short_operand" "rI")))]
@@ -10722,6 +10722,14 @@
"cmp<wd>%I2 %0,%1,%2"
[(set_attr "type" "cmp")])
+(define_insn "*cmp<mode>_unsigned"
+ [(set (match_operand:CCUNS 0 "cc_reg_operand" "=y")
+ (compare:CCUNS (match_operand:GPR 1 "gpc_reg_operand" "r")
+ (match_operand:GPR 2 "reg_or_u_short_operand" "rK")))]
+ ""
+ "cmpl<wd>%I2 %0,%1,%2"
+ [(set_attr "type" "cmp")])
+
;; If we are comparing a register for equality with a large constant,
;; we can do this with an XOR followed by a compare. But this is profitable
;; only if the large constant is only used for the comparison (and in this
@@ -10766,22 +10774,6 @@
operands[10] = GEN_INT (sextc);
})
-(define_insn "*cmpsi_internal2"
- [(set (match_operand:CCUNS 0 "cc_reg_operand" "=y")
- (compare:CCUNS (match_operand:SI 1 "gpc_reg_operand" "r")
- (match_operand:SI 2 "reg_or_u_short_operand" "rK")))]
- ""
- "cmplw%I2 %0,%1,%b2"
- [(set_attr "type" "cmp")])
-
-(define_insn "*cmpdi_internal2"
- [(set (match_operand:CCUNS 0 "cc_reg_operand" "=y")
- (compare:CCUNS (match_operand:DI 1 "gpc_reg_operand" "r")
- (match_operand:DI 2 "reg_or_u_short_operand" "rK")))]
- ""
- "cmpld%I2 %0,%1,%b2"
- [(set_attr "type" "cmp")])
-
;; The following two insns don't exist as single insns, but if we provide
;; them, we can swap an add and compare, which will enable us to overlap more
;; of the required delay between a compare and branch. We generate code for