reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Target/X86/X86ISelLowering.cpp
 9307           createVariablePermute(VT, SrcVec, IndicesVec, DL, DAG, Subtarget), 0,
 9308           DAG, DL, SizeInBits);
 9370       IndicesVec = DAG.getNode(ISD::ADD, DL, IndicesVT, IndicesVec, IndicesVec);
 9376           DL, IndicesVec,
 9377           getZeroVector(IndicesVT.getSimpleVT(), Subtarget, DAG, DL),
 9378           DAG.getVectorShuffle(VT, DL, SrcVec, SrcVec, {0, 0}),
 9379           DAG.getVectorShuffle(VT, DL, SrcVec, SrcVec, {1, 1}),
 9387       SDValue LoSrc = extract128BitVector(SrcVec, 0, DAG, DL);
 9388       SDValue HiSrc = extract128BitVector(SrcVec, 16, DAG, DL);
 9389       SDValue LoIdx = extract128BitVector(IndicesVec, 0, DAG, DL);
 9390       SDValue HiIdx = extract128BitVector(IndicesVec, 16, DAG, DL);
 9392           ISD::CONCAT_VECTORS, DL, VT,
 9393           DAG.getNode(X86ISD::VPPERM, DL, MVT::v16i8, LoSrc, HiSrc, LoIdx),
 9394           DAG.getNode(X86ISD::VPPERM, DL, MVT::v16i8, LoSrc, HiSrc, HiIdx));
 9396       SDValue Lo = extract128BitVector(SrcVec, 0, DAG, DL);
 9397       SDValue Hi = extract128BitVector(SrcVec, 16, DAG, DL);
 9398       SDValue LoLo = DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, Lo, Lo);
 9399       SDValue HiHi = DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, Hi, Hi);
 9413       return SplitOpsAndApply(DAG, Subtarget, DL, MVT::v32i8, Ops,
 9426                   DAG.getBitcast(MVT::v32i8, IndicesVec), DL, DAG, Subtarget));
 9435       SDValue LoLo = DAG.getVectorShuffle(MVT::v8f32, DL, SrcVec, SrcVec,
 9437       SDValue HiHi = DAG.getVectorShuffle(MVT::v8f32, DL, SrcVec, SrcVec,
 9441             VT, DAG.getNode(X86ISD::VPERMIL2, DL, MVT::v8f32, LoLo, HiHi,
 9442                             IndicesVec, DAG.getTargetConstant(0, DL, MVT::i8)));
 9446           DL, IndicesVec, DAG.getConstant(3, DL, MVT::v8i32),
 9446           DL, IndicesVec, DAG.getConstant(3, DL, MVT::v8i32),
 9447           DAG.getNode(X86ISD::VPERMILPV, DL, MVT::v8f32, HiHi, IndicesVec),
 9448           DAG.getNode(X86ISD::VPERMILPV, DL, MVT::v8f32, LoLo, IndicesVec),
 9462         SDValue Res = createVariablePermute(WidenSrcVT, SrcVec, IndicesVec, DL,
 9464         return extract256BitVector(Res, 0, DAG, DL);
 9470           DAG.getVectorShuffle(MVT::v4f64, DL, SrcVec, SrcVec, {0, 1, 0, 1});
 9472           DAG.getVectorShuffle(MVT::v4f64, DL, SrcVec, SrcVec, {2, 3, 2, 3});
 9474       IndicesVec = DAG.getNode(ISD::ADD, DL, IndicesVT, IndicesVec, IndicesVec);
 9477             VT, DAG.getNode(X86ISD::VPERMIL2, DL, MVT::v4f64, LoLo, HiHi,
 9478                             IndicesVec, DAG.getTargetConstant(0, DL, MVT::i8)));
 9482           DL, IndicesVec, DAG.getConstant(2, DL, MVT::v4i64),
 9482           DL, IndicesVec, DAG.getConstant(2, DL, MVT::v4i64),
 9483           DAG.getNode(X86ISD::VPERMILPV, DL, MVT::v4f64, HiHi, IndicesVec),
 9484           DAG.getNode(X86ISD::VPERMILPV, DL, MVT::v4f64, LoLo, IndicesVec),
 9521                     ? DAG.getNode(Opcode, DL, ShuffleVT, IndicesVec, SrcVec)
 9522                     : DAG.getNode(Opcode, DL, ShuffleVT, SrcVec, IndicesVec);