[Bug rtl-optimization/118755] [15 Regression] ccmp_3.c fails on aarch64
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Feb 6 00:25:20 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118755
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #4)
> propagating insn 11 into insn 12, replacing:
> (set (reg:QI 107 [ _3 ])
> (subreg:QI (reg:SI 108) 0))
> failed to match this instruction:
> (set (reg:QI 107 [ _3 ])
> (subreg:QI (eq:SI (reg:CC 66 cc)
> (const_int 0 [0])) 0))
>
>
> Actually we could extend the cset patterns to do all integer modes.
Actually we do have that already:
```
(define_insn "aarch64_cstore<mode>"
[(set (match_operand:ALLI 0 "register_operand" "=r")
(match_operator:ALLI 1 "aarch64_comparison_operator_mode"
[(match_operand 2 "cc_register" "") (const_int 0)]))]
""
"cset\\t%<w>0, %m1"
[(set_attr "type" "csel")]
(define_mode_iterator ALLI [QI HI SI DI])
```
Maybe we should have it always done as QI mode while expanding and add a
pattern with zero_extend.
More information about the Gcc-bugs
mailing list