|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
include/llvm/CodeGen/BasicTTIImpl.h 677 case TTI::SK_PermuteTwoSrc:
lib/Analysis/TargetTransformInfo.cpp 1318 return TTIImpl->getShuffleCost(SK_PermuteTwoSrc, Ty, 0, nullptr);
lib/Target/X86/X86TargetTransformInfo.cpp 896 Kind = TTI::SK_PermuteTwoSrc;
973 getShuffleCost(TTI::SK_PermuteTwoSrc, SingleOpTy, 0, nullptr);
980 if (Kind == TTI::SK_PermuteTwoSrc && LT.first != 1) {
994 {TTI::SK_PermuteTwoSrc, MVT::v64i8, 1}, // vpermt2b
995 {TTI::SK_PermuteTwoSrc, MVT::v32i8, 1}, // vpermt2b
996 {TTI::SK_PermuteTwoSrc, MVT::v16i8, 1} // vpermt2b
1018 {TTI::SK_PermuteTwoSrc, MVT::v32i16, 1}, // vpermt2w
1019 {TTI::SK_PermuteTwoSrc, MVT::v16i16, 1}, // vpermt2w
1020 {TTI::SK_PermuteTwoSrc, MVT::v8i16, 1}, // vpermt2w
1021 {TTI::SK_PermuteTwoSrc, MVT::v32i8, 3}, // zext + vpermt2w + trunc
1022 {TTI::SK_PermuteTwoSrc, MVT::v64i8, 19}, // 6 * v32i8 + 1
1023 {TTI::SK_PermuteTwoSrc, MVT::v16i8, 3} // zext + vpermt2w + trunc
1056 {TTI::SK_PermuteTwoSrc, MVT::v8f64, 1}, // vpermt2pd
1057 {TTI::SK_PermuteTwoSrc, MVT::v16f32, 1}, // vpermt2ps
1058 {TTI::SK_PermuteTwoSrc, MVT::v8i64, 1}, // vpermt2q
1059 {TTI::SK_PermuteTwoSrc, MVT::v16i32, 1}, // vpermt2d
1060 {TTI::SK_PermuteTwoSrc, MVT::v4f64, 1}, // vpermt2pd
1061 {TTI::SK_PermuteTwoSrc, MVT::v8f32, 1}, // vpermt2ps
1062 {TTI::SK_PermuteTwoSrc, MVT::v4i64, 1}, // vpermt2q
1063 {TTI::SK_PermuteTwoSrc, MVT::v8i32, 1}, // vpermt2d
1064 {TTI::SK_PermuteTwoSrc, MVT::v2f64, 1}, // vpermt2pd
1065 {TTI::SK_PermuteTwoSrc, MVT::v4f32, 1}, // vpermt2ps
1066 {TTI::SK_PermuteTwoSrc, MVT::v2i64, 1}, // vpermt2q
1067 {TTI::SK_PermuteTwoSrc, MVT::v4i32, 1} // vpermt2d
1101 {TTI::SK_PermuteTwoSrc, MVT::v4f64, 3}, // 2*vpermpd + vblendpd
1102 {TTI::SK_PermuteTwoSrc, MVT::v8f32, 3}, // 2*vpermps + vblendps
1103 {TTI::SK_PermuteTwoSrc, MVT::v4i64, 3}, // 2*vpermq + vpblendd
1104 {TTI::SK_PermuteTwoSrc, MVT::v8i32, 3}, // 2*vpermd + vpblendd
1105 {TTI::SK_PermuteTwoSrc, MVT::v16i16, 7}, // 2*vperm2i128 + 4*vpshufb
1107 {TTI::SK_PermuteTwoSrc, MVT::v32i8, 7}, // 2*vperm2i128 + 4*vpshufb
1125 {TTI::SK_PermuteTwoSrc, MVT::v16i16, 9}, // 2*vextractf128 + 6*vpperm
1127 {TTI::SK_PermuteTwoSrc, MVT::v8i16, 1}, // vpperm
1128 {TTI::SK_PermuteTwoSrc, MVT::v32i8, 9}, // 2*vextractf128 + 6*vpperm
1130 {TTI::SK_PermuteTwoSrc, MVT::v16i8, 1}, // vpperm
1170 {TTI::SK_PermuteTwoSrc, MVT::v4f64, 3}, // 2*vperm2f128 + vshufpd
1171 {TTI::SK_PermuteTwoSrc, MVT::v4i64, 3}, // 2*vperm2f128 + vshufpd
1172 {TTI::SK_PermuteTwoSrc, MVT::v8f32, 4}, // 2*vperm2f128 + 2*vshufps
1173 {TTI::SK_PermuteTwoSrc, MVT::v8i32, 4}, // 2*vperm2f128 + 2*vshufps
1174 {TTI::SK_PermuteTwoSrc, MVT::v16i16, 15}, // 2*vextractf128 + 8*pshufb
1176 {TTI::SK_PermuteTwoSrc, MVT::v32i8, 15}, // 2*vextractf128 + 8*pshufb
1210 {TTI::SK_PermuteTwoSrc, MVT::v8i16, 3}, // 2*pshufb + por
1211 {TTI::SK_PermuteTwoSrc, MVT::v16i8, 3}, // 2*pshufb + por
1246 { TTI::SK_PermuteTwoSrc, MVT::v2f64, 1 }, // shufpd
1247 { TTI::SK_PermuteTwoSrc, MVT::v2i64, 1 }, // shufpd
1248 { TTI::SK_PermuteTwoSrc, MVT::v4i32, 2 }, // 2*{unpck,movsd,pshufd}
1249 { TTI::SK_PermuteTwoSrc, MVT::v8i16, 8 }, // blend+permute
1250 { TTI::SK_PermuteTwoSrc, MVT::v16i8, 13 }, // blend+permute
1262 { TTI::SK_PermuteTwoSrc, MVT::v4f32, 2 }, // 2*shufps
2489 Cost += getShuffleCost(TTI::SK_PermuteTwoSrc, SrcVTy, 0, nullptr) +
2490 getShuffleCost(TTI::SK_PermuteTwoSrc, MaskTy, 0, nullptr);
3652 (NumOfMemOps > 1) ? TTI::SK_PermuteTwoSrc : TTI::SK_PermuteSingleSrc;
3678 if (NumOfResults > 1 && ShuffleKind == TTI::SK_PermuteTwoSrc)
3711 getShuffleCost(TTI::SK_PermuteTwoSrc, SingleMemOpTy, 0, nullptr);
lib/Transforms/Vectorize/SLPVectorizer.cpp 311 return Vec2 ? TargetTransformInfo::SK_PermuteTwoSrc