[x86] add movddup specialization for build vector lowering (PR37502) 

This is admittedly a narrow fix for the problem:
https://bugs.llvm.org/show_bug.cgi?id=37502
...but as the XOP restriction shows, it's a maze to get this right. 
In the motivating example, note that we have movddup before SSE4.1 and 
again with AVX2. That's because insertps isn't available pre-SSE41 and 
vbroadcast is (more generally) available with AVX2 (and the splat is 
reduced to movddup via isel pattern).

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349937 91177308-0d34-0410-b5e6-96231b3b80d8
5 files changed