aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorJameson Nash <vtjnash@gmail.com>2021-07-22 19:42:23 -0400
committerJameson Nash <vtjnash@gmail.com>2021-09-27 14:06:13 -0400
commite27a6db5298f6ba3c1dbc8bab25c769cfa761b2a (patch)
tree53aa42202570673525c99371ddad015b2eb932c5 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parentb2a2c38349a18b89b04d342632d5ea02f86dfdd6 (diff)
downloadllvm-e27a6db5298f6ba3c1dbc8bab25c769cfa761b2a.zip
llvm-e27a6db5298f6ba3c1dbc8bab25c769cfa761b2a.tar.gz
llvm-e27a6db5298f6ba3c1dbc8bab25c769cfa761b2a.tar.bz2
Bad SLPVectorization shufflevector replacement, resulting in write to wrong memory location
We see that it might otherwise do: %10 = getelementptr {}**, <2 x {}***> %9, <2 x i32> <i32 10, i32 4> %11 = bitcast <2 x {}***> %10 to <2 x i64*> ... %27 = extractelement <2 x i64*> %11, i32 0 %28 = bitcast i64* %27 to <2 x i64>* store <2 x i64> %22, <2 x i64>* %28, align 4, !tbaa !2 Which is an out-of-bounds store (the extractelement got offset 10 instead of offset 4 as intended). With the fix, we correctly generate extractelement for i32 1 and generate correct code. Differential Revision: https://reviews.llvm.org/D106613
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions