aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Bolton <ian.bolton@arm.com>2013-03-14 12:04:26 +0000
committerIan Bolton <ibolton@gcc.gnu.org>2013-03-14 12:04:26 +0000
commitd803a4912e3cb9ffcfa57a790d26073bff5086ee (patch)
tree8a5e50f4ef1e27d5abb7e5ff28725fff2d0175b7
parent430b9e22a7e0de45bff4b8ff45a4212e041e7bf8 (diff)
downloadgcc-d803a4912e3cb9ffcfa57a790d26073bff5086ee.zip
gcc-d803a4912e3cb9ffcfa57a790d26073bff5086ee.tar.gz
gcc-d803a4912e3cb9ffcfa57a790d26073bff5086ee.tar.bz2
AArch64 should return CC_NZ for AND operation (part 2)
From-SVN: r196656
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/aarch64/aarch64.md8
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 71c8b9f..19ecdba 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2013-03-14 Ian Bolton <ian.bolton@arm.com>
+ * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
+ (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
+
+2013-03-14 Ian Bolton <ian.bolton@arm.com>
+
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
CC mode for AND.
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 73d86a7..76a5125 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -2547,8 +2547,8 @@
)
(define_insn "*and<mode>3nr_compare0"
- [(set (reg:CC CC_REGNUM)
- (compare:CC
+ [(set (reg:CC_NZ CC_REGNUM)
+ (compare:CC_NZ
(and:GPI (match_operand:GPI 0 "register_operand" "%r,r")
(match_operand:GPI 1 "aarch64_logical_operand" "r,<lconst>"))
(const_int 0)))]
@@ -2558,8 +2558,8 @@
(set_attr "mode" "<MODE>")])
(define_insn "*and_<SHIFT:optab><mode>3nr_compare0"
- [(set (reg:CC CC_REGNUM)
- (compare:CC
+ [(set (reg:CC_NZ CC_REGNUM)
+ (compare:CC_NZ
(and:GPI (SHIFT:GPI
(match_operand:GPI 0 "register_operand" "r")
(match_operand:QI 1 "aarch64_shift_imm_<mode>" "n"))