# Sema: fix coerceArrayLike\(\) for vectors with padding · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/77dd64b5f449982bda1bf1871e214a68c535f4c5)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 77dd64b5f449982bda1bf1871e214a68c535f4c5

Requested commit: 77dd64b5f449982bda1bf1871e214a68c535f4c5

Commit: 77dd64b5f449982bda1bf1871e214a68c535f4c5

Tree: 7c19c7440c7015a57d1ad7cf315d138aa7d344d2

Author: Xavier Bouchoux

Committer: Andrew Kelley

## Message

```
Sema: fix coerceArrayLike() for vectors with padding

as explainded at https://llvm.org/docs/LangRef.html#vector-type :

"In general vector elements are laid out in memory in the same way as array types.
Such an analogy works fine as long as the vector elements are byte sized.
However, when the elements of the vector aren’t byte sized it gets a bit more complicated.
One way to describe the layout is by describing what happens when a vector such
as <N x iM> is bitcasted to an integer type with N*M bits, and then following the
rules for storing such an integer to memory."

"When <N*M> isn’t evenly divisible by the byte size the exact memory layout
is unspecified (just like it is for an integral type of the same size)."

```

## Parents

- [9959319d5395a668867c90f63b5f82eb03f0ac9f](https://git.cafe/gitcafe/zig/commit/9959319d5395a668867c90f63b5f82eb03f0ac9f?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/77dd64b5f449982bda1bf1871e214a68c535f4c5?format=markdown)
