[cfe-dev] [RFC] Opt-in vector of bool type

Simon Moll via cfe-dev cfe-dev at lists.llvm.org
Fri May 15 06:16:23 PDT 2020

On 5/14/20 6:23 PM, Richard Sandiford wrote:
> FWIW, this would also be useful for SVE predicates when generating
> fixed-length code.
Yes, i imagine that a lot of SIMD/vector targets would benefit from this.

> It's convenient that both GCC and clang reject boolean element types
> as thing stand, e.g.:
>     typedef bool foo __attribute__((vector_size(32)));
> I think this means that it should be possible to treat packed boolean
> vectors as a pure extension to what exists today.  Compatibility with
> older compilers shouldn't be a concern, it would just be a new feature.
> GCC is a moving target too, and I don't know of any reason in principle
> why GCC would never support this.  A lot of the necessary plumbing
> already exists.
> So far the principle has been that vector_size should work the same
> way regardless of the current target, with the compiler deciding
> how best to implement the code.  I think it would be good to follow
> that for any extension too, rather than making the feature opt-in and
> introducing a new target dependency.

I have to say i am pleasantly surprised by the positive feedback for
this proposal :) If there are no principal reservations against going
ahead with this, i'll submit a patch on Phabricator that enables 'bool'
in vector_size by default for all targets, so, basically a revert of:

    commit 8c9795d9fa94a7478d18e3906dff2408f379e8d9
    Author: Aaron Ballman <aaron at aaronballman.com>
    Date:   Fri Sep 13 20:43:08 2013 +0000

        vector_size cannot be applied to Booleans.  Updated the semantic
checking logic, as well as the comment and added a test case.  Fixes PR12649
        llvm-svn: 190721

We can flesh out the details during review.

- Simon

More information about the cfe-dev mailing list