]> granicus.if.org Git - llvm/commit
[X86][AVX] lowerShuffleAsBroadcast - improve load folding by avoiding bitcasts
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 13 Mar 2019 12:20:39 +0000 (12:20 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 13 Mar 2019 12:20:39 +0000 (12:20 +0000)
commit781bdd8a108138a52c66e3f92363f58cfc54a949
tree52751e54b21bb637e66ef62a50d6bc3f52486c2f
parent9a37b8328d4afcb26be22af7bc6939f6a9878156
[X86][AVX] lowerShuffleAsBroadcast - improve load folding by avoiding bitcasts

AVX1 broadcasts were failing as we were adding bitcasts that caused MayFoldLoad's hasOneUse to return false.

This patch stops introducing bitcasts so early and also replaces the broadcast index scaling through bitcasts (which can't succeed in some cases) to instead just keep track of the bitoffset which can be converted back to the broadcast index later on.

Differential Revision: https://reviews.llvm.org/D58888

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@356043 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/widened-broadcast.ll