[X86] Teach EltsFromConsecutiveLoads that it's ok to form a v4f32 VZEXT_LOAD with...
authorCraig Topper <craig.topper@gmail.com>
Sun, 23 Feb 2020 02:50:41 +0000 (18:50 -0800)
committerCraig Topper <craig.topper@gmail.com>
Sun, 23 Feb 2020 02:50:52 +0000 (18:50 -0800)
commitbdb1729c8347c2b7d932976f8588e524b4f7b8d5
tree014c588a6274190deede1bace2cda53dd7a36a63
parente7a184fc7c044b883ab782fa05e56f873050bd72
[X86] Teach EltsFromConsecutiveLoads that it's ok to form a v4f32 VZEXT_LOAD with a 64 bit memory size on SSE1 targets.

We can use MOVLPS which will load 64 bits, but we need a v4f32
result type. We already have isel patterns for this.

The code here is a little hacky. We can probably improve it with
more isel patterns.
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/atomic-fp.ll
llvm/test/CodeGen/X86/atomic-non-integer.ll
llvm/test/CodeGen/X86/merge-consecutive-loads-128.ll