Hi all, With the SABDL and UABDL patterns converted, the accumulating forms of them UABAL and SABAL are not much more complicated. There's an accumulator argument that we, err, accumulate into with a PLUS once all the widening is done. Some necessary renaming of patterns relating to the removal of UNSPEC_SABAL and UNSPEC_UABAL is included.
Bootstrapped and tested on aarch64-none-linux-gnu. Pushing to trunk. Thanks, Kyrill gcc/ChangeLog: * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>): Rename to... (aarch64_<su>abal<mode>): ... This. Use RTL codes instead of unspec. (<sur>sadv16qi): Rename to... (<su>sadv16qi): ... This. Adjust for the above. * config/aarch64/aarch64-sve.md (<sur>sad<vsi2qi>): Rename to... (<su>sad<vsi2qi>): ... This. Adjust for the above. * config/aarch64/aarch64.md (UNSPEC_SABAL, UNSPEC_UABAL): Delete. * config/aarch64/iterators.md (ABAL): Delete. (sur): Remove handling of UNSPEC_SABAL and UNSPEC_UABAL.
abal.patch
Description: abal.patch