On 11/14/22 09:51, Jeff Law wrote:
On 11/13/22 16:05, Christoph Muellner wrote:
From: Philipp Tomsich <philipp.toms...@vrull.eu>
As a basis for optimized string functions (e.g., the by-pieces
implementations), we need orc.b available. This adds orc.b as an
unspec, so we can expand to it.
gcc/ChangeLog:
* config/riscv/bitmanip.md (orcb<mode>2): Add orc.b as an
unspec.
* config/riscv/riscv.md: Add UNSPEC_ORC_B.
In general, we should prefer to express things as "real" RTL rather
than UNSPECS. In this particular case expressing the orc could be
done with a handful of IOR expressions, though they'd probably need to
reference byte SUBREGs of the input and I dislike explicit SUBREGs in
the md file even more than UNSPECs.
Mis-read the specs on orc. So ignore the comment about expressing this
as a handful of IORs and about it being reduc_ior_scal.
jeff