aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2019-10-22 13:16:42 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2019-10-22 13:16:42 +0000
commitb747c183714a5d68da8037d8b705a8bc67f11bac (patch)
treebc135817e7aa0f414e2682dff1e6a57d9fc33baf
parent6c7b0df8029d01e05577668333660d0bc58a3023 (diff)
downloadgcc-b747c183714a5d68da8037d8b705a8bc67f11bac.zip
gcc-b747c183714a5d68da8037d8b705a8bc67f11bac.tar.gz
gcc-b747c183714a5d68da8037d8b705a8bc67f11bac.tar.bz2
[arm] make arm_carry_operation and arm_borrow_operation duals
Arm_carry_operation and arm_borrow_operation are duals: given that we have a comparison that returns a result that relies solely in the carry flag one is the inverse of the other. So there's no reason for one to have a CC mode that the other does not have. This patch restores that equivalence. * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode. From-SVN: r277289
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/arm/predicates.md2
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f8cfef7..e80bb17 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2019-10-22 Richard Earnshaw <rearnsha@arm.com>
+
+ * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode.
+
2019-10-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/92173
diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md
index 8a8f10c..267c446 100644
--- a/gcc/config/arm/predicates.md
+++ b/gcc/config/arm/predicates.md
@@ -398,7 +398,7 @@
machine_mode ccmode = GET_MODE (op0);
if (ccmode == CC_Cmode)
return GET_CODE (op) == GEU;
- else if (ccmode == CCmode || ccmode == CC_RSBmode)
+ else if (ccmode == CCmode || ccmode == CC_RSBmode || ccmode == CC_ADCmode)
return GET_CODE (op) == LTU;
return false;
}