diff options
author | Sirraide <aeternalmail@gmail.com> | 2024-12-17 02:07:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-17 02:07:29 +0100 |
commit | 6e58e99a07facd73547f7fa1a6f8c0719d8af30d (patch) | |
tree | a31b13d7891029fbe4c4af2fcb1a09008cb8a476 /llvm/lib/CodeGen/StackMaps.cpp | |
parent | 72e8b9aeaa3f584f223bc59924812df69a09a48b (diff) | |
download | llvm-6e58e99a07facd73547f7fa1a6f8c0719d8af30d.zip llvm-6e58e99a07facd73547f7fa1a6f8c0719d8af30d.tar.gz llvm-6e58e99a07facd73547f7fa1a6f8c0719d8af30d.tar.bz2 |
[Clang] [Sema] Reject non-power-of-2 `_BitInt` matrix element types (#117487)
Essentially, this makes this ill-formed:
```c++
using mat4 = _BitInt(12) [[clang::matrix_type(3, 3)]];
```
This matches preexisting behaviour for vector types (e.g.
`ext_vector_type`), and given that LLVM IR intrinsics for matrices also
take vector types, it seems like a sensible thing to do.
This is currently especially problematic since we sometimes lower matrix
types to LLVM array types instead, and while e.g. `[4 x i32]` and `<4 x
i32>` *probably* have the same similar memory layout (though I don’t
think it’s sound to rely on that either, see #117486), `[4 x i12]` and
`<4 x i12>` definitely don’t.
Diffstat (limited to 'llvm/lib/CodeGen/StackMaps.cpp')
0 files changed, 0 insertions, 0 deletions