llvm
2e6fae47 - [vecz] Avoid scalarization using large ints

Commit
217 days ago
[vecz] Avoid scalarization using large ints When we scalarize, when needed, we bitcast values to integer types, shift and mask as needed, and then bitcast to the destination type. This is not generally valid: when any source element is poison, if it is inserted into a full-width integer type, the full integer becomes poison, it is not possible to mask out bits. This commit avoids creating the full-width integer by bitcasting individual elements of the source vector, which not only avoids the bug but also generally results in simpler shorter code. This commit also removes some dead code from scalarizer.cpp. UndefValue is already handled by the code immediately above.
Author
Committer
Colin Davidson
Parents
Loading