[1/2] LoongArch: NFC: Deduplicate crc instruction defines
Checks
Context |
Check |
Description |
linaro-tcwg-bot/tcwg_gcc_build--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 |
success
|
Testing passed
|
Commit Message
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.
---
gcc/config/loongarch/loongarch.md | 18 +++++-------------
1 file changed, 5 insertions(+), 13 deletions(-)
Comments
LGTM!
Thanks!
在 2024/2/26 下午12:28, Xi Ruoyao 写道:
> 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.
> ---
> gcc/config/loongarch/loongarch.md | 18 +++++-------------
> 1 file changed, 5 insertions(+), 13 deletions(-)
>
> diff --git a/gcc/config/loongarch/loongarch.md b/gcc/config/loongarch/loongarch.md
> index 2ce7a151880..4ded1b3a117 100644
> --- a/gcc/config/loongarch/loongarch.md
> +++ b/gcc/config/loongarch/loongarch.md
> @@ -4251,24 +4251,16 @@ (define_peephole2
>
>
> (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>")])
>
@@ -4251,24 +4251,16 @@ (define_peephole2
(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>")])