[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