aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/loongarch
diff options
context:
space:
mode:
authorXi Ruoyao <xry111@xry111.site>2024-02-25 20:40:41 +0800
committerXi Ruoyao <xry111@xry111.site>2024-02-29 14:48:18 +0800
commitc556ea076dcbfe2a3059dd0ad2e06a0b1d1fa89b (patch)
tree8fddb4d71bc397629275f726222218128cf6d90d /gcc/config/loongarch
parent3685fae23bb00898749dfc155212c9c5cd3a0980 (diff)
downloadgcc-c556ea076dcbfe2a3059dd0ad2e06a0b1d1fa89b.zip
gcc-c556ea076dcbfe2a3059dd0ad2e06a0b1d1fa89b.tar.gz
gcc-c556ea076dcbfe2a3059dd0ad2e06a0b1d1fa89b.tar.bz2
LoongArch: NFC: Deduplicate crc instruction defines
Introduce an iterator for UNSPEC_CRC and UNSPEC_CRCC to make the next change easier. gcc/ChangeLog: * config/loongarch/loongarch.md (CRC): New define_int_iterator. (crc): New define_int_attr. (loongarch_crc_w_<size>_w, loongarch_crcc_w_<size>_w): Unify into ... (loongarch_<crc>_w_<size>_w): ... here.
Diffstat (limited to 'gcc/config/loongarch')
-rw-r--r--gcc/config/loongarch/loongarch.md18
1 files changed, 5 insertions, 13 deletions
diff --git a/gcc/config/loongarch/loongarch.md b/gcc/config/loongarch/loongarch.md
index dffa41b..9646fa90 100644
--- a/gcc/config/loongarch/loongarch.md
+++ b/gcc/config/loongarch/loongarch.md
@@ -4251,24 +4251,16 @@
(define_mode_iterator QHSD [QI HI SI DI])
+(define_int_iterator CRC [UNSPEC_CRC UNSPEC_CRCC])
+(define_int_attr crc [(UNSPEC_CRC "crc") (UNSPEC_CRCC "crcc")])
-(define_insn "loongarch_crc_w_<size>_w"
+(define_insn "loongarch_<crc>_w_<size>_w"
[(set (match_operand:SI 0 "register_operand" "=r")
(unspec:SI [(match_operand:QHSD 1 "register_operand" "r")
(match_operand:SI 2 "register_operand" "r")]
- UNSPEC_CRC))]
+ CRC))]
""
- "crc.w.<size>.w\t%0,%1,%2"
- [(set_attr "type" "unknown")
- (set_attr "mode" "<MODE>")])
-
-(define_insn "loongarch_crcc_w_<size>_w"
- [(set (match_operand:SI 0 "register_operand" "=r")
- (unspec:SI [(match_operand:QHSD 1 "register_operand" "r")
- (match_operand:SI 2 "register_operand" "r")]
- UNSPEC_CRCC))]
- ""
- "crcc.w.<size>.w\t%0,%1,%2"
+ "<crc>.w.<size>.w\t%0,%1,%2"
[(set_attr "type" "unknown")
(set_attr "mode" "<MODE>")])