diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2023-07-02 02:59:32 +0200 |
---|---|---|
committer | Hans-Peter Nilsson <hp@bitrange.com> | 2023-07-04 03:05:21 +0200 |
commit | 48c85cb5334df621a05b322661089dd08be27094 (patch) | |
tree | 5bc49e3ebab831d232bee54b7dc5b07cc419739f /gcc | |
parent | 2db33665399b8b9aa3b8d92a1c9622a9f1c87035 (diff) | |
download | gcc-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.md | 9 |
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") |