[llvm-dev] [RISC-V V] How to read each bit of vbool8_t individually

Craig Topper via llvm-dev
Fri, 09 Jul 2021 03:41:27 -0000

There aren't really any instructions for doing this in the ISA. Solutions I
can think of are rounding vl to the next multiple of 8 and storing it to a
uint8_t using vse8. Then reading it back by looping over the array and
looking at all 8 bits of each uint8_t. Or you could use vmerge to turn into
a vuint8m1_t vector of 1 and 0.

Perhaps if you shared your use case I might be able to come up with
something else.

~Craig


On Thu, Jul 8, 2021 at 7:23 PM Shao-Ce Sun via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hi All,
>   I have a question about RISC-V V, that is how to read each bit of
> vbool8_t individually, for example:
>             vbool8_t A;
>             bool B[8] = A;
> Thanks!
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20210708/cf377adf/attachment.html>