AVX-512: changes in intrinsics
authorElena Demikhovsky <elena.demikhovsky@intel.com>
Mon, 12 May 2014 07:18:51 +0000 (07:18 +0000)
committerElena Demikhovsky <elena.demikhovsky@intel.com>
Mon, 12 May 2014 07:18:51 +0000 (07:18 +0000)
commit1cec507d6d34201ac4319924bcd01c84a7583182
tree3df086831790ee6fe4e82f54d0deaf33470c942e
parentf37d8e6b1adc9270c0a31354ffc78224124651c3
AVX-512: changes in intrinsics
1) Changed gather and scatter intrinsics. Now they are aligned with GCC built-ins. There is no more non-masked form. Masked intrinsic receives -1 if all lanes are executed.
2) I changed the function that works with intrinsics inside X86ISelLowering.cpp. I put all intrinsics in one table. I did it for INTRINSICS_W_CHAIN and plan to put all intrinsics from WO_CHAIN set to the same table in order to avoid the long-long "switch". (I wanted to use static map initialization that allowed by C++11 but I wasn't able to compile it on VS2012).
3) I added gather/scatter prefetch intrinsics.
4) I fixed MRMm encoding for masked instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208522 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/IntrinsicsX86.td
lib/Target/X86/MCTargetDesc/X86BaseInfo.h
lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrAVX512.td
test/CodeGen/X86/avx512-gather-scatter-intrin.ll