]> granicus.if.org Git - llvm/commit
[AVX512] Correct isel patterns to support selecting masked vbroadcastf32x2/vbroadcast...
authorCraig Topper <craig.topper@intel.com>
Wed, 30 Aug 2017 07:48:39 +0000 (07:48 +0000)
committerCraig Topper <craig.topper@intel.com>
Wed, 30 Aug 2017 07:48:39 +0000 (07:48 +0000)
commite841c283740a653e3307b4ab3f88ad6774c47915
tree30f7d365a9fc1badd60314510680a0a0632e4fe1
parentd3803a9404226c2dcc9d25ecb341b9c9bbf98d5a
[AVX512] Correct isel patterns to support selecting masked vbroadcastf32x2/vbroadcasti32x2

Summary:
This patch adjusts the patterns to make the result type of the broadcast node vXf64/vXi64. Then adds a bitcast to vXi32 after that. Intrinsic lowering was also adjusted to generate this new pattern.

Fixes PR34357

We should probably just drop the intrinsic entirely and use native IR, but I'll leave that for a future patch.

Any idea what instruction we should be lowering the floating point 128-bit result version of this pattern to?  There's a 128-bit v2i32 integer broadcast but not an fp one.

Reviewers: aymanmus, zvi, igorb

Reviewed By: aymanmus

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312101 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrAVX512.td
test/CodeGen/X86/vector-shuffle-masked.ll