[AVX512] Add masking variants for vextract*x4

Adam Nemet anemet at apple.com
Tue Sep 30 22:56:34 PDT 2014


Hi Elena and Robert,

First I tried to implement this with the usual intrinsic lowering but unfortunately because vextract*x4 produces v4* vectors I would have needed VK4 and v4i1 for masking in AVX512f which only come with AVX512vl.  I don’t think these intrinsics are worth the hassle making that work so instead I went for asm-only instructions.  Then I have the intrinsics Pat<>s to call the corresponding instruction.

This approach gave me a chance to incorporate asm-only masking support into the AVX512_masking hierarchy.  See patch 1 and 4.

Also the masking operand was not supported with the MRMDestReg format, so I’ve added that too.  See patch 2.

Please let me know if it looks good to you.

Thanks,
Adam

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-AVX512-Peel-off-an-asm-only-class-from-AVX512_maskin.patch
Type: application/octet-stream
Size: 4707 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140930/f9477c79/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-AVX512-Support-mask-register-in-MRMDestReg-format.patch
Type: application/octet-stream
Size: 2526 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140930/f9477c79/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-AVX512-Move-DAG-for-all-zero-node-to-X86VectorVTInfo.patch
Type: application/octet-stream
Size: 1883 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140930/f9477c79/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-AVX512-Add-asm-only-support-for-vextract-x4-masking-.patch
Type: application/octet-stream
Size: 3435 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140930/f9477c79/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-AVX512-Intrinsics-for-vextract-x4.patch
Type: application/octet-stream
Size: 6250 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140930/f9477c79/attachment-0004.obj>


More information about the llvm-commits mailing list