aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2023-07-02 02:59:32 +0200
committerHans-Peter Nilsson <hp@bitrange.com>2023-07-04 03:05:21 +0200
commit48c85cb5334df621a05b322661089dd08be27094 (patch)
tree5bc49e3ebab831d232bee54b7dc5b07cc419739f /gcc
parent2db33665399b8b9aa3b8d92a1c9622a9f1c87035 (diff)
downloadgcc-48c85cb5334df621a05b322661089dd08be27094.zip
gcc-48c85cb5334df621a05b322661089dd08be27094.tar.gz
gcc-48c85cb5334df621a05b322661089dd08be27094.tar.bz2
CRIS: Replace unspec CRIS_UNSPEC_SWAP_BITS with rtx bitreverse
This is just expected to be a change in representation. No code is expected to change; no new tests are added. * config/cris/cris.md (CRIS_UNSPEC_SWAP_BITS): Remove. ("cris_swap_bits", "ctzsi2"): Use bitreverse instead.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/cris/cris.md9
1 files changed, 2 insertions, 7 deletions
diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md
index 7504b63..deb2f0c 100644
--- a/gcc/config/cris/cris.md
+++ b/gcc/config/cris/cris.md
@@ -50,9 +50,6 @@
[
;; Stack frame deallocation barrier.
CRIS_UNSPEC_FRAME_DEALLOC
-
- ;; Swap all 32 bits of the operand; 31 <=> 0, 30 <=> 1...
- CRIS_UNSPEC_SWAP_BITS
])
;; Register numbers.
@@ -2177,8 +2174,7 @@
(define_insn "cris_swap_bits"
[(set (match_operand:SI 0 "register_operand" "=r")
- (unspec:SI [(match_operand:SI 1 "register_operand" "0")]
- CRIS_UNSPEC_SWAP_BITS))
+ (bitreverse:SI (match_operand:SI 1 "register_operand" "0")))
(clobber (reg:CC CRIS_CC0_REGNUM))]
"TARGET_HAS_SWAP"
"swapwbr %0"
@@ -2193,8 +2189,7 @@
(match_operand:SI 1 "register_operand"))
(clobber (reg:CC CRIS_CC0_REGNUM))])
(parallel
- [(set (match_dup 2)
- (unspec:SI [(match_dup 2)] CRIS_UNSPEC_SWAP_BITS))
+ [(set (match_dup 2) (bitreverse:SI (match_dup 2)))
(clobber (reg:CC CRIS_CC0_REGNUM))])
(parallel
[(set (match_operand:SI 0 "register_operand")