summaryrefslogtreecommitdiff
path: root/gcc/config/cris
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2020-02-03 03:15:01 +0100
committerHans-Peter Nilsson <hp@axis.com>2020-05-09 04:18:17 +0200
commitd137723be6b9bb0f7c0e69aea0c6735ad092f366 (patch)
tree2926c6654c6a53660b0376342002b64a30c1d38d /gcc/config/cris
parent730cafefe6b96ddacfd1c2145b39dde68bed4f4f (diff)
cris: Enable 32-bit shifts, clz, bswap, umin to set condition codes.
Enables dropping of compares with zero of the result, through any CCmode substitution. gcc: * config/cris/cris.md ("<acc><anz><anzvc><shlr>si3<setcc><setnz><setnzvc>"): Rename from "<shlr>si3". ("<acc><anz><anzvc>clzsi2<setcc><setnz><setnzvc>"): Rename from "clzsi2". ("<acc><anz><anzvc>bswapsi2<setcc><setnz><setnzvc>"): Rename from "bswapsi2". ("*uminsi3<setcc><setnz><setnzvc>"): Rename from "*uminsi3".
Diffstat (limited to 'gcc/config/cris')
-rw-r--r--gcc/config/cris/cris.md8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md
index 6faef6cda02..c085e26602e 100644
--- a/gcc/config/cris/cris.md
+++ b/gcc/config/cris/cris.md
@@ -1758,7 +1758,7 @@
;; Arithmetic/Logical shift right (and SI left).
-(define_insn "<shlr>si3"
+(define_insn "<acc><anz><anzvc><shlr>si3<setcc><setnz><setnzvc>"
[(set (match_operand:SI 0 "register_operand" "=r")
(shift:SI (match_operand:SI 1 "register_operand" "0")
(match_operand:SI 2 "nonmemory_operand" "Kcr")))
@@ -1918,7 +1918,7 @@
""
"operands[2] = gen_reg_rtx (SImode); operands[3] = gen_reg_rtx (SImode);")
-(define_insn "clzsi2"
+(define_insn "<acc><anz><anzvc>clzsi2<setcc><setnz><setnzvc>"
[(set (match_operand:SI 0 "register_operand" "=r")
(clz:SI (match_operand:SI 1 "register_operand" "r")))
(clobber (reg:CC CRIS_CC0_REGNUM))]
@@ -1926,7 +1926,7 @@
"lz %1,%0"
[(set_attr "slottable" "yes")])
-(define_insn "bswapsi2"
+(define_insn "<acc><anz><anzvc>bswapsi2<setcc><setnz><setnzvc>"
[(set (match_operand:SI 0 "register_operand" "=r")
(bswap:SI (match_operand:SI 1 "register_operand" "0")))
(clobber (reg:CC CRIS_CC0_REGNUM))]
@@ -1979,7 +1979,7 @@
""
"")
-(define_insn "*uminsi3"
+(define_insn "*uminsi3<setcc><setnz><setnzvc>"
[(set (match_operand:SI 0 "register_operand" "=r,r, r,r")
(umin:SI (match_operand:SI 1 "register_operand" "%0,0, 0,r")
(match_operand:SI 2 "general_operand" "r,Q>,g,!To")))