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

References

include/llvm/CodeGen/BasicTTIImpl.h
  676     case TTI::SK_PermuteSingleSrc:
 1635                    ConcreteTTI->getShuffleCost(TTI::SK_PermuteSingleSrc, Ty,
 1699                    ConcreteTTI->getShuffleCost(TTI::SK_PermuteSingleSrc, Ty,
lib/Analysis/TargetTransformInfo.cpp
 1316       return TTIImpl->getShuffleCost(SK_PermuteSingleSrc, Ty, 0, nullptr);
lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  951       Kind == TTI::SK_Select || Kind == TTI::SK_PermuteSingleSrc) {
  986       { TTI::SK_PermuteSingleSrc, MVT::v2i32, 1 }, // mov.
  987       { TTI::SK_PermuteSingleSrc, MVT::v4i32, 3 }, // perfectshuffle worst case.
  988       { TTI::SK_PermuteSingleSrc, MVT::v2i64, 1 }, // mov.
  989       { TTI::SK_PermuteSingleSrc, MVT::v2f32, 1 }, // mov.
  990       { TTI::SK_PermuteSingleSrc, MVT::v4f32, 3 }, // perfectshuffle worst case.
  991       { TTI::SK_PermuteSingleSrc, MVT::v2f64, 1 }, // mov.
lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
  660       case TTI::SK_PermuteSingleSrc:
lib/Target/X86/X86TargetTransformInfo.cpp
  954   if (Kind == TTI::SK_PermuteSingleSrc && LT.first != 1) {
  991       {TTI::SK_PermuteSingleSrc, MVT::v64i8, 1}, // vpermb
  992       {TTI::SK_PermuteSingleSrc, MVT::v32i8, 1}, // vpermb
 1012       {TTI::SK_PermuteSingleSrc, MVT::v32i16, 1}, // vpermw
 1013       {TTI::SK_PermuteSingleSrc, MVT::v16i16, 1}, // vpermw
 1014       {TTI::SK_PermuteSingleSrc, MVT::v8i16, 1},  // vpermw
 1015       {TTI::SK_PermuteSingleSrc, MVT::v64i8, 8},  // extend to v32i16
 1016       {TTI::SK_PermuteSingleSrc, MVT::v32i8, 3},  // vpermw + zext/trunc
 1042       {TTI::SK_PermuteSingleSrc, MVT::v8f64, 1},  // vpermpd
 1043       {TTI::SK_PermuteSingleSrc, MVT::v4f64, 1},  // vpermpd
 1044       {TTI::SK_PermuteSingleSrc, MVT::v2f64, 1},  // vpermpd
 1045       {TTI::SK_PermuteSingleSrc, MVT::v16f32, 1}, // vpermps
 1046       {TTI::SK_PermuteSingleSrc, MVT::v8f32, 1},  // vpermps
 1047       {TTI::SK_PermuteSingleSrc, MVT::v4f32, 1},  // vpermps
 1048       {TTI::SK_PermuteSingleSrc, MVT::v8i64, 1},  // vpermq
 1049       {TTI::SK_PermuteSingleSrc, MVT::v4i64, 1},  // vpermq
 1050       {TTI::SK_PermuteSingleSrc, MVT::v2i64, 1},  // vpermq
 1051       {TTI::SK_PermuteSingleSrc, MVT::v16i32, 1}, // vpermd
 1052       {TTI::SK_PermuteSingleSrc, MVT::v8i32, 1},  // vpermd
 1053       {TTI::SK_PermuteSingleSrc, MVT::v4i32, 1},  // vpermd
 1054       {TTI::SK_PermuteSingleSrc, MVT::v16i8, 1},  // pshufb
 1092       {TTI::SK_PermuteSingleSrc, MVT::v4f64, 1},  // vpermpd
 1093       {TTI::SK_PermuteSingleSrc, MVT::v8f32, 1},  // vpermps
 1094       {TTI::SK_PermuteSingleSrc, MVT::v4i64, 1},  // vpermq
 1095       {TTI::SK_PermuteSingleSrc, MVT::v8i32, 1},  // vpermd
 1096       {TTI::SK_PermuteSingleSrc, MVT::v16i16, 4}, // vperm2i128 + 2*vpshufb
 1098       {TTI::SK_PermuteSingleSrc, MVT::v32i8, 4},  // vperm2i128 + 2*vpshufb
 1116       {TTI::SK_PermuteSingleSrc, MVT::v4f64, 2},  // vperm2f128 + vpermil2pd
 1117       {TTI::SK_PermuteSingleSrc, MVT::v8f32, 2},  // vperm2f128 + vpermil2ps
 1118       {TTI::SK_PermuteSingleSrc, MVT::v4i64, 2},  // vperm2f128 + vpermil2pd
 1119       {TTI::SK_PermuteSingleSrc, MVT::v8i32, 2},  // vperm2f128 + vpermil2ps
 1120       {TTI::SK_PermuteSingleSrc, MVT::v16i16, 4}, // vextractf128 + 2*vpperm
 1122       {TTI::SK_PermuteSingleSrc, MVT::v32i8, 4},  // vextractf128 + 2*vpperm
 1161       {TTI::SK_PermuteSingleSrc, MVT::v4f64, 2},  // vperm2f128 + vshufpd
 1162       {TTI::SK_PermuteSingleSrc, MVT::v4i64, 2},  // vperm2f128 + vshufpd
 1163       {TTI::SK_PermuteSingleSrc, MVT::v8f32, 4},  // 2*vperm2f128 + 2*vshufps
 1164       {TTI::SK_PermuteSingleSrc, MVT::v8i32, 4},  // 2*vperm2f128 + 2*vshufps
 1165       {TTI::SK_PermuteSingleSrc, MVT::v16i16, 8}, // vextractf128 + 4*pshufb
 1167       {TTI::SK_PermuteSingleSrc, MVT::v32i8, 8},  // vextractf128 + 4*pshufb
 1207       {TTI::SK_PermuteSingleSrc, MVT::v8i16, 1}, // pshufb
 1208       {TTI::SK_PermuteSingleSrc, MVT::v16i8, 1}, // pshufb
 1238       {TTI::SK_PermuteSingleSrc, MVT::v2f64, 1}, // shufpd
 1239       {TTI::SK_PermuteSingleSrc, MVT::v2i64, 1}, // pshufd
 1240       {TTI::SK_PermuteSingleSrc, MVT::v4i32, 1}, // pshufd
 1241       {TTI::SK_PermuteSingleSrc, MVT::v8i16, 5}, // 2*pshuflw + 2*pshufhw
 1243     { TTI::SK_PermuteSingleSrc, MVT::v16i8, 10 }, // 2*pshuflw + 2*pshufhw
 1261     { TTI::SK_PermuteSingleSrc, MVT::v4f32, 1 }, // shufps
 3652         (NumOfMemOps > 1) ? TTI::SK_PermuteTwoSrc : TTI::SK_PermuteSingleSrc;
lib/Transforms/Vectorize/SLPVectorizer.cpp
  312               : TargetTransformInfo::SK_PermuteSingleSrc;
 2928         TTI->getShuffleCost(TargetTransformInfo::SK_PermuteSingleSrc, VecTy);
 3003               TargetTransformInfo::SK_PermuteSingleSrc, VecTy);
 3177             TargetTransformInfo::SK_PermuteSingleSrc, VecTy);
 3515     Cost += TTI->getShuffleCost(TargetTransformInfo::SK_PermuteSingleSrc, Ty);