Skip to content

v2.42.2

@karolzwolak karolzwolak tagged this 07 Oct 08:30
Since LLVM 20, InstCombine folds a trunc-to-i1 of an extracted element into
a bitcast to a bool vector plus an extractelement. When the vector is
loaded, the bitcast is then folded into the load, giving e.g. a
<64 x i1> load, which crashes the compiler with a floating point exception.

VectorPreProcess now loads such vectors as bytes and bitcasts the result.
Legalization, which runs after the last InstCombine, rewrites any
remaining bool vector load to bytes and lowers the extracts from the
bitcast as it already does for bitcasts to bool vectors.

(cherry picked from commit 266369f9fb6cfa2430785789b8afae7a03c6f216)
Assets 2
Loading