mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 14:10:41 +00:00
Turn avx2 vinserti128 intrinsic calls into INSERT_SUBVECTOR DAG nodes and remove patterns for selecting the intrinsic. Similar was already done for avx1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154272 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f16ffb1259
commit
b45c969959
@ -4848,7 +4848,8 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) {
|
||||
}
|
||||
case Intrinsic::x86_avx_vinsertf128_pd_256:
|
||||
case Intrinsic::x86_avx_vinsertf128_ps_256:
|
||||
case Intrinsic::x86_avx_vinsertf128_si_256: {
|
||||
case Intrinsic::x86_avx_vinsertf128_si_256:
|
||||
case Intrinsic::x86_avx2_vinserti128: {
|
||||
DebugLoc dl = getCurDebugLoc();
|
||||
EVT DestVT = TLI.getValueType(I.getType());
|
||||
EVT ElVT = TLI.getValueType(I.getArgOperand(1)->getType());
|
||||
|
@ -7783,18 +7783,17 @@ def : Pat<(v8i32 (X86VPerm2x128 VR256:$src1, (bc_v8i32 (memopv4i64 addr:$src2)),
|
||||
//===----------------------------------------------------------------------===//
|
||||
// VINSERTI128 - Insert packed integer values
|
||||
//
|
||||
let neverHasSideEffects = 1 in {
|
||||
def VINSERTI128rr : AVX2AIi8<0x38, MRMSrcReg, (outs VR256:$dst),
|
||||
(ins VR256:$src1, VR128:$src2, i8imm:$src3),
|
||||
"vinserti128\t{$src3, $src2, $src1, $dst|$dst, $src1, $src2, $src3}",
|
||||
[(set VR256:$dst,
|
||||
(int_x86_avx2_vinserti128 VR256:$src1, VR128:$src2, imm:$src3))]>,
|
||||
[]>,
|
||||
VEX_4V;
|
||||
def VINSERTI128rm : AVX2AIi8<0x38, MRMSrcMem, (outs VR256:$dst),
|
||||
(ins VR256:$src1, i128mem:$src2, i8imm:$src3),
|
||||
"vinserti128\t{$src3, $src2, $src1, $dst|$dst, $src1, $src2, $src3}",
|
||||
[(set VR256:$dst,
|
||||
(int_x86_avx2_vinserti128 VR256:$src1, (memopv2i64 addr:$src2),
|
||||
imm:$src3))]>, VEX_4V;
|
||||
[]>, VEX_4V;
|
||||
}
|
||||
|
||||
let Predicates = [HasAVX2], AddedComplexity = 1 in {
|
||||
def : Pat<(vinsertf128_insert:$ins (v4i64 VR256:$src1), (v2i64 VR128:$src2),
|
||||
|
Loading…
Reference in New Issue
Block a user