[X86][AVX] Add support for 64-bit VZEXT_LOAD of 256/512-bit vectors to EltsFromConsec...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 3 Feb 2016 09:41:59 +0000 (09:41 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 3 Feb 2016 09:41:59 +0000 (09:41 +0000)
commit18bcf93efb3b5c99fba6d95e197b8f26538e5a48
treeeaf08f12851f90554f1147b4b0675912593b7ca8
parent75f0ff5ba1826e157f8da6756f644560586e5637
[X86][AVX] Add support for 64-bit VZEXT_LOAD of 256/512-bit vectors to EltsFromConsecutiveLoads

Follow up to D16217 and D16729

This change uncovered an odd pattern where VZEXT_LOAD v4i64 was being lowered to a load of the lower v2i64 (so the 2nd i64 destination element wasn't being zeroed), I can't find any use/reason for this and have removed the pattern and replaced it so only the 1st i64 element is loaded and the upper bits all zeroed. This matches the description for X86ISD::VZEXT_LOAD

Differential Revision: http://reviews.llvm.org/D16768

llvm-svn: 259635
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
llvm/lib/Target/X86/X86InstrSSE.td
llvm/test/CodeGen/X86/merge-consecutive-loads-256.ll
llvm/test/CodeGen/X86/merge-consecutive-loads-512.ll