https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113221

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #4)
> Actually `(match_operand 0 "register_operand")` should be used instead of
> the current `(match_code "reg,subreg")`.

Except that does not work since register_operand checks the mode ...
and then we fail to match:
```
(insn 46 45 47 2 (parallel [
            (set (reg:V4SI 148)
                (unspec:V4SI [
                        (mem/c:V2x16QI (reg:DI 147) [0 +0 S32 A128])
                    ] UNSPEC_LDP_FST))
            (set (reg:V4SI 149)
                (unspec:V4SI [
                        (mem/c:V2x16QI (reg:DI 147) [0 +0 S32 A128])
                    ] UNSPEC_LDP_SND))
        ]) "../../../libgcc/libgcov-interface.c":211:2 -1
     (nil))
```
Because we only define the load_pair_16 for TImode and TImode != V4SImode here
...

So Back to changing it to only test for reg and subreg of a reg then.

Reply via email to