rsandifo-arm added inline comments.
================ Comment at: clang/docs/LanguageExtensions.rst:492 + +The memory representation of a boolean vector is the smallest fitting +power-of-two integer. The alignment is the alignment of that integer type. This ---------------- simoll wrote: > rsandifo-arm wrote: > > It might be worth clarifying this. With the alignment referring > > specifically to “integer type”, I wasn't sure what something like: > > > > bool __attribute__((vector_size(256))) > > > > would mean on targets that don't provide 256-byte integer types. Is the > > type still 256-byte aligned? > Not exactly: It is the alignment of the corresponding integer type. > For example the following C code: > > typedef bool bool256 __attribute__((vector_size(256))); > bool256 P; > > gives you (x86_64 host, no machine flags specified): > > %P = alloca i2048, align 32 I guess my point is pedantic, but what I meant was: does the concept of “the corresponding integer type” necessarily exist at the C/C++ level? E.g. how would you end up with the same LLVM IR statement using C integer types instead of vectors? My worry was that “the alignment of the corresponding integer type” would only be meaningful to the user if they could identify what the corresponding (C) integer type actually was, and be able to determine its alignment that way. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D81083/new/ https://reviews.llvm.org/D81083 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits