On Mon, 14 Nov 2022 at 17:51, Jeff Law <jeffreya...@gmail.com> 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. So.... > > OK.
Applied to master. Thanks! (After using emacs' whitespace-cleanup to fix the damage that Christoph's vim did to the ChangeLog...) Philipp. > > > Jeff > > > ps. We could consider this a reduc_ior_scal insn, but that may be > actively harmful. Having vector ops on the general and vector registers > is a wart I hope we can avoid. > >