OSDN Git Service

[AVX512] Handle valign masking intrinsic via C++ lowering
authorAdam Nemet <anemet@apple.com>
Tue, 12 Aug 2014 21:13:12 +0000 (21:13 +0000)
committerAdam Nemet <anemet@apple.com>
Tue, 12 Aug 2014 21:13:12 +0000 (21:13 +0000)
commit6ea7f3687262cb016566d80966b77293d56ed84a
tree53d998e2195cf663ec823430281b213996dca5a2
parent00139e51c90d3592b2fcbae0418ea4fef736e2b3
[AVX512] Handle valign masking intrinsic via C++ lowering

I think that this will scale better in most cases than adding a Pat<> for each
mapping from the intrinsic DAG to the intruction (i.e. rri, rrik, rrikz).  We
can just lower to the SDNode and have the resulting DAG be matches by the DAG
patterns.

Alternatively (long term), we could keep the Pat<>s but generate them via the
new AVX512_masking multiclass.  The difficulty is that in order to formulate
that we would have to concatenate DAGs.  Currently this is only supported if
the operators of the input DAGs are identical.

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