[X86] combineScalarToVector - handle (v2i64 scalar_to_vector(aextload)) as well as...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 28 Jun 2020 12:00:15 +0000 (13:00 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 28 Jun 2020 12:00:32 +0000 (13:00 +0100)
commite07a982693353aad85590301357035e9d583bbbc
tree49123a2f044c7773e3f47450cf24f75858f06f27
parent299dee91b34756cd6622886694d638d5e3796121
[X86] combineScalarToVector - handle (v2i64 scalar_to_vector(aextload)) as well as (v2i64 scalar_to_vector(aext))

We already fold (v2i64 scalar_to_vector(aext)) -> (v2i64 bitcast(v4i32 scalar_to_vector(x))), this adds support for similar aextload cases and also handles v2f64 cases that wrap the i64 extension behind bitcasts.

Fixes the remaining issue with PR39016
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/bitcast-int-to-vector-bool-sext.ll
llvm/test/CodeGen/X86/bitcast-int-to-vector-bool-zext.ll
llvm/test/CodeGen/X86/dagcombine-cse.ll
llvm/test/CodeGen/X86/vector-shuffle-128-v8.ll
llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll