[llvm-commits] [PATCH] X86: Add support for GATHER intrinsics of X86 AVX2, please review
Manman Ren
mren at apple.com
Mon Jun 25 10:50:58 PDT 2012
ping
>
>
> -----Original Message-----
> From: llvm-commits-bounces at cs.uiuc.edu [mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of Manman Ren
> Sent: Saturday, June 23, 2012 01:12
> To: Commit Messages and Patches for LLVM
> Subject: [llvm-commits] [PATCH] X86: Add support for GATHER intrinsics of X86 AVX2, please review
>
>
> Support the following intrinsics:
> _mm_mask_i32gather_pd, _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd
> _mm256_mask_i64gather_pd, _mm_mask_i32gather_ps, _mm256_mask_i32gather_ps
> _mm_mask_i64gather_ps, _mm256_mask_i64gather_ps
>
> There are two places which I am not sure about:
> 1> Is a customized ISel needed for GATHER?
> I can't figure out how to select the address operands for GATHER intrinsics
> in a .td file, given that index and scale are passed in as parameters.
> gather(<2 x double> %a0, i8* %base, <2 x i64> %idx, <2 x double> %mask, i8 scale)
>
> 2> Is there a better way to modify disassembler to handle VSIB addressing mode?
> The existing disassembler assumes index register is encoded for SIB only.
> However VSIB has a different mapping for the index registers.
> For example: index field of 100 means VR4 or VR12 for VSIB, and it means
> no index register for SIB.
> We don't know whether it is VSIB or SIB before the instruction ID is decoded.
> It looks to me that X86::VGATHER is not exposed to readSIB in X86DisassemblerDecoder.c
> The attached patch checks whether it is VSIB during translation and if yes,
> it will update index register to the correct value according to VSIB.
>
> File modified:
> test/MC/X86/x86_64-avx-encoding.s
> test/MC/Disassembler/X86/simple-tests.txt
> test/CodeGen/X86/avx2-intrinsics-x86.ll
> include/llvm/IntrinsicsX86.td
> utils/TableGen/EDEmitter.cpp
> utils/TableGen/X86RecognizableInstr.cpp
> lib/Target/X86/X86InstrInfo.td
> lib/Target/X86/AsmParser/X86AsmParser.cpp
> lib/Target/X86/X86ISelDAGToDAG.cpp
> lib/Target/X86/X86InstrSSE.td
> lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
> lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
> lib/Target/X86/Disassembler/X86Disassembler.cpp
>
> Comments are appreciated.
>
> Thanks,
> Manman
> ---------------------------------------------------------------------
> Intel Israel (74) Limited
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120625/7955c6a8/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: avx2.llvm.2.patch
Type: application/octet-stream
Size: 19275 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120625/7955c6a8/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120625/7955c6a8/attachment-0001.html>
More information about the llvm-commits
mailing list