diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2019-10-22 13:16:42 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2019-10-22 13:16:42 +0000 |
commit | b747c183714a5d68da8037d8b705a8bc67f11bac (patch) | |
tree | bc135817e7aa0f414e2682dff1e6a57d9fc33baf | |
parent | 6c7b0df8029d01e05577668333660d0bc58a3023 (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/arm/predicates.md | 2 |
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; } |