diff options
author | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2015-11-06 23:16:38 +0000 |
---|---|---|
committer | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2015-11-06 23:16:38 +0000 |
commit | 68614a36d114ba390ce97576b71717b8d7c96b6f (patch) | |
tree | 8d199b08583a68e4ffe4fa1fccfc5078923f994f /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
parent | b126f6b6c8ed31a00ef9dacf478138e43c41810f (diff) | |
download | bcm5719-llvm-68614a36d114ba390ce97576b71717b8d7c96b6f.tar.gz bcm5719-llvm-68614a36d114ba390ce97576b71717b8d7c96b6f.zip |
[X86] Don't fold non-LSB extracts into truncating broadcasts.
We used to incorrectly assume that the offset we're extracting from
was a multiple of the element size. So, we'd fold:
(v8i16 (shufflevector
(v8i16 (bitcast (v4i32 (build_vector X, Y, ...)))),
<1,1,...,1>))
into:
(v8i16 (vbroadcast (i16 (trunc Y))))
whereas we should have extracted the higher bits from X.
Instead, bail out if the assumption doesn't hold.
llvm-svn: 252361
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions