[PATCH] D81083: [Clang] Allow "vector_size" applied to Booleans

Simon Moll via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 24 01:47:50 PDT 2020


simoll added a comment.

The Hexagon builtins explicitly require bool vectors to have 8-bit wide bool elements. That clashes with our new vector type because bool vectors in builtin functions and vector_size bool vectors have the same internal representation in Clang. However, AFAIK Hexagon is the only target that actually need 8-bit bools. I see two possible ways out of this:

1. Introduce a `Bit` type in Clang that is only constructible as a vector element type. This way, any existing users of generic bool vectors are undisturbed. VE can use `Bit` in its builtin declarations to match the vector_size bool type. We may re-purpose the `Bit` type for a proper boolean vector type in the future.
2. Add a new target property: `BoolInVectorSize` that is the size of a bool element in boolean vectors. Hexagon, as most targets, would define `BoolInVectorSize = BoolSize`. VE would define `BoolInVectorSize = 1` for the intended behavior.

My preference is for 2. since it means small changes to the current patch and less surprises than the other option. Opinions?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D81083/new/

https://reviews.llvm.org/D81083



More information about the cfe-commits mailing list