Lines Matching refs:MVT
175 std::pair<unsigned, MVT> LT = TLI->getTypeLegalizationCost(Ty); in getArithmeticInstrCost()
180 static const CostTblEntry<MVT::SimpleValueType> AVX2CostTable[] = { in getArithmeticInstrCost()
183 { ISD::SHL, MVT::v4i32, 1 }, in getArithmeticInstrCost()
184 { ISD::SRL, MVT::v4i32, 1 }, in getArithmeticInstrCost()
185 { ISD::SRA, MVT::v4i32, 1 }, in getArithmeticInstrCost()
186 { ISD::SHL, MVT::v8i32, 1 }, in getArithmeticInstrCost()
187 { ISD::SRL, MVT::v8i32, 1 }, in getArithmeticInstrCost()
188 { ISD::SRA, MVT::v8i32, 1 }, in getArithmeticInstrCost()
189 { ISD::SHL, MVT::v2i64, 1 }, in getArithmeticInstrCost()
190 { ISD::SRL, MVT::v2i64, 1 }, in getArithmeticInstrCost()
191 { ISD::SHL, MVT::v4i64, 1 }, in getArithmeticInstrCost()
192 { ISD::SRL, MVT::v4i64, 1 }, in getArithmeticInstrCost()
194 { ISD::SHL, MVT::v32i8, 42 }, // cmpeqb sequence. in getArithmeticInstrCost()
195 { ISD::SHL, MVT::v16i16, 16*10 }, // Scalarized. in getArithmeticInstrCost()
197 { ISD::SRL, MVT::v32i8, 32*10 }, // Scalarized. in getArithmeticInstrCost()
198 { ISD::SRL, MVT::v16i16, 8*10 }, // Scalarized. in getArithmeticInstrCost()
200 { ISD::SRA, MVT::v32i8, 32*10 }, // Scalarized. in getArithmeticInstrCost()
201 { ISD::SRA, MVT::v16i16, 16*10 }, // Scalarized. in getArithmeticInstrCost()
202 { ISD::SRA, MVT::v4i64, 4*10 }, // Scalarized. in getArithmeticInstrCost()
205 { ISD::SDIV, MVT::v32i8, 32*20 }, in getArithmeticInstrCost()
206 { ISD::SDIV, MVT::v16i16, 16*20 }, in getArithmeticInstrCost()
207 { ISD::SDIV, MVT::v8i32, 8*20 }, in getArithmeticInstrCost()
208 { ISD::SDIV, MVT::v4i64, 4*20 }, in getArithmeticInstrCost()
209 { ISD::UDIV, MVT::v32i8, 32*20 }, in getArithmeticInstrCost()
210 { ISD::UDIV, MVT::v16i16, 16*20 }, in getArithmeticInstrCost()
211 { ISD::UDIV, MVT::v8i32, 8*20 }, in getArithmeticInstrCost()
212 { ISD::UDIV, MVT::v4i64, 4*20 }, in getArithmeticInstrCost()
222 static const CostTblEntry<MVT::SimpleValueType> in getArithmeticInstrCost()
227 { ISD::SHL, MVT::v16i8, 1 }, // psllw. in getArithmeticInstrCost()
228 { ISD::SHL, MVT::v8i16, 1 }, // psllw. in getArithmeticInstrCost()
229 { ISD::SHL, MVT::v4i32, 1 }, // pslld in getArithmeticInstrCost()
230 { ISD::SHL, MVT::v2i64, 1 }, // psllq. in getArithmeticInstrCost()
232 { ISD::SRL, MVT::v16i8, 1 }, // psrlw. in getArithmeticInstrCost()
233 { ISD::SRL, MVT::v8i16, 1 }, // psrlw. in getArithmeticInstrCost()
234 { ISD::SRL, MVT::v4i32, 1 }, // psrld. in getArithmeticInstrCost()
235 { ISD::SRL, MVT::v2i64, 1 }, // psrlq. in getArithmeticInstrCost()
237 { ISD::SRA, MVT::v16i8, 4 }, // psrlw, pand, pxor, psubb. in getArithmeticInstrCost()
238 { ISD::SRA, MVT::v8i16, 1 }, // psraw. in getArithmeticInstrCost()
239 { ISD::SRA, MVT::v4i32, 1 }, // psrad. in getArithmeticInstrCost()
250 static const CostTblEntry<MVT::SimpleValueType> SSE2CostTable[] = { in getArithmeticInstrCost()
259 { ISD::SHL, MVT::v16i8, 30 }, // cmpeqb sequence. in getArithmeticInstrCost()
260 { ISD::SHL, MVT::v8i16, 8*10 }, // Scalarized. in getArithmeticInstrCost()
261 { ISD::SHL, MVT::v4i32, 2*5 }, // We optimized this using mul. in getArithmeticInstrCost()
262 { ISD::SHL, MVT::v2i64, 2*10 }, // Scalarized. in getArithmeticInstrCost()
264 { ISD::SRL, MVT::v16i8, 16*10 }, // Scalarized. in getArithmeticInstrCost()
265 { ISD::SRL, MVT::v8i16, 8*10 }, // Scalarized. in getArithmeticInstrCost()
266 { ISD::SRL, MVT::v4i32, 4*10 }, // Scalarized. in getArithmeticInstrCost()
267 { ISD::SRL, MVT::v2i64, 2*10 }, // Scalarized. in getArithmeticInstrCost()
269 { ISD::SRA, MVT::v16i8, 16*10 }, // Scalarized. in getArithmeticInstrCost()
270 { ISD::SRA, MVT::v8i16, 8*10 }, // Scalarized. in getArithmeticInstrCost()
271 { ISD::SRA, MVT::v4i32, 4*10 }, // Scalarized. in getArithmeticInstrCost()
272 { ISD::SRA, MVT::v2i64, 2*10 }, // Scalarized. in getArithmeticInstrCost()
280 { ISD::SDIV, MVT::v16i8, 16*20 }, in getArithmeticInstrCost()
281 { ISD::SDIV, MVT::v8i16, 8*20 }, in getArithmeticInstrCost()
282 { ISD::SDIV, MVT::v4i32, 4*20 }, in getArithmeticInstrCost()
283 { ISD::SDIV, MVT::v2i64, 2*20 }, in getArithmeticInstrCost()
284 { ISD::UDIV, MVT::v16i8, 16*20 }, in getArithmeticInstrCost()
285 { ISD::UDIV, MVT::v8i16, 8*20 }, in getArithmeticInstrCost()
286 { ISD::UDIV, MVT::v4i32, 4*20 }, in getArithmeticInstrCost()
287 { ISD::UDIV, MVT::v2i64, 2*20 }, in getArithmeticInstrCost()
296 static const CostTblEntry<MVT::SimpleValueType> AVX1CostTable[] = { in getArithmeticInstrCost()
300 { ISD::MUL, MVT::v8i32, 4 }, in getArithmeticInstrCost()
301 { ISD::SUB, MVT::v8i32, 4 }, in getArithmeticInstrCost()
302 { ISD::ADD, MVT::v8i32, 4 }, in getArithmeticInstrCost()
303 { ISD::SUB, MVT::v4i64, 4 }, in getArithmeticInstrCost()
304 { ISD::ADD, MVT::v4i64, 4 }, in getArithmeticInstrCost()
310 { ISD::MUL, MVT::v4i64, 18 }, in getArithmeticInstrCost()
321 static const CostTblEntry<MVT::SimpleValueType> CustomLowered[] = { in getArithmeticInstrCost()
324 { ISD::MUL, MVT::v2i64, 9 }, in getArithmeticInstrCost()
325 { ISD::MUL, MVT::v4i64, 9 }, in getArithmeticInstrCost()
333 if (ISD == ISD::MUL && LT.second == MVT::v4i32 && ST->hasSSE2() && in getArithmeticInstrCost()
348 std::pair<unsigned, MVT> LT = TLI->getTypeLegalizationCost(Tp); in getShuffleCost()
361 std::pair<unsigned, MVT> LTSrc = TLI->getTypeLegalizationCost(Src); in getCastInstrCost()
362 std::pair<unsigned, MVT> LTDest = TLI->getTypeLegalizationCost(Dst); in getCastInstrCost()
364 static const TypeConversionCostTblEntry<MVT::SimpleValueType> in getCastInstrCost()
369 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i64, 2*10 }, in getCastInstrCost()
370 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v4i32, 4*10 }, in getCastInstrCost()
371 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v8i16, 8*10 }, in getCastInstrCost()
372 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v16i8, 16*10 }, in getCastInstrCost()
373 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v2i64, 2*10 }, in getCastInstrCost()
374 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v4i32, 4*10 }, in getCastInstrCost()
375 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v8i16, 8*10 }, in getCastInstrCost()
376 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v16i8, 16*10 }, in getCastInstrCost()
378 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v2i64, 15 }, in getCastInstrCost()
379 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i32, 15 }, in getCastInstrCost()
380 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v8i16, 15 }, in getCastInstrCost()
381 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v16i8, 8 }, in getCastInstrCost()
382 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v2i64, 15 }, in getCastInstrCost()
383 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i32, 15 }, in getCastInstrCost()
384 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v8i16, 15 }, in getCastInstrCost()
385 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v16i8, 8 }, in getCastInstrCost()
402 static const TypeConversionCostTblEntry<MVT::SimpleValueType> in getCastInstrCost()
404 { ISD::SIGN_EXTEND, MVT::v16i16, MVT::v16i8, 1 }, in getCastInstrCost()
405 { ISD::ZERO_EXTEND, MVT::v16i16, MVT::v16i8, 1 }, in getCastInstrCost()
406 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i16, 1 }, in getCastInstrCost()
407 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i16, 1 }, in getCastInstrCost()
408 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i32, 1 }, in getCastInstrCost()
409 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i32, 1 }, in getCastInstrCost()
410 { ISD::TRUNCATE, MVT::v4i32, MVT::v4i64, 1 }, in getCastInstrCost()
411 { ISD::TRUNCATE, MVT::v8i16, MVT::v8i32, 1 }, in getCastInstrCost()
412 { ISD::TRUNCATE, MVT::v16i8, MVT::v16i16, 2 }, in getCastInstrCost()
414 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i1, 8 }, in getCastInstrCost()
415 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i8, 8 }, in getCastInstrCost()
416 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i16, 5 }, in getCastInstrCost()
417 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i32, 1 }, in getCastInstrCost()
418 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i1, 3 }, in getCastInstrCost()
419 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i8, 3 }, in getCastInstrCost()
420 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i16, 3 }, in getCastInstrCost()
421 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i32, 1 }, in getCastInstrCost()
422 { ISD::SINT_TO_FP, MVT::v4f64, MVT::v4i1, 3 }, in getCastInstrCost()
423 { ISD::SINT_TO_FP, MVT::v4f64, MVT::v4i8, 3 }, in getCastInstrCost()
424 { ISD::SINT_TO_FP, MVT::v4f64, MVT::v4i16, 3 }, in getCastInstrCost()
425 { ISD::SINT_TO_FP, MVT::v4f64, MVT::v4i32, 1 }, in getCastInstrCost()
427 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i1, 6 }, in getCastInstrCost()
428 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i8, 5 }, in getCastInstrCost()
429 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i16, 5 }, in getCastInstrCost()
430 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i32, 9 }, in getCastInstrCost()
431 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i1, 7 }, in getCastInstrCost()
432 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i8, 2 }, in getCastInstrCost()
433 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i16, 2 }, in getCastInstrCost()
434 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i32, 6 }, in getCastInstrCost()
435 { ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i1, 7 }, in getCastInstrCost()
436 { ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i8, 2 }, in getCastInstrCost()
437 { ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i16, 2 }, in getCastInstrCost()
438 { ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i32, 6 }, in getCastInstrCost()
440 { ISD::FP_TO_SINT, MVT::v8i8, MVT::v8f32, 1 }, in getCastInstrCost()
441 { ISD::FP_TO_SINT, MVT::v4i8, MVT::v4f32, 1 }, in getCastInstrCost()
442 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i1, 6 }, in getCastInstrCost()
443 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i1, 9 }, in getCastInstrCost()
444 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i1, 8 }, in getCastInstrCost()
445 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i8, 6 }, in getCastInstrCost()
446 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i16, 6 }, in getCastInstrCost()
447 { ISD::TRUNCATE, MVT::v8i32, MVT::v8i64, 3 }, in getCastInstrCost()
463 std::pair<unsigned, MVT> LT = TLI->getTypeLegalizationCost(ValTy); in getCmpSelInstrCost()
465 MVT MTy = LT.second; in getCmpSelInstrCost()
470 static const CostTblEntry<MVT::SimpleValueType> SSE42CostTbl[] = { in getCmpSelInstrCost()
471 { ISD::SETCC, MVT::v2f64, 1 }, in getCmpSelInstrCost()
472 { ISD::SETCC, MVT::v4f32, 1 }, in getCmpSelInstrCost()
473 { ISD::SETCC, MVT::v2i64, 1 }, in getCmpSelInstrCost()
474 { ISD::SETCC, MVT::v4i32, 1 }, in getCmpSelInstrCost()
475 { ISD::SETCC, MVT::v8i16, 1 }, in getCmpSelInstrCost()
476 { ISD::SETCC, MVT::v16i8, 1 }, in getCmpSelInstrCost()
479 static const CostTblEntry<MVT::SimpleValueType> AVX1CostTbl[] = { in getCmpSelInstrCost()
480 { ISD::SETCC, MVT::v4f64, 1 }, in getCmpSelInstrCost()
481 { ISD::SETCC, MVT::v8f32, 1 }, in getCmpSelInstrCost()
483 { ISD::SETCC, MVT::v4i64, 4 }, in getCmpSelInstrCost()
484 { ISD::SETCC, MVT::v8i32, 4 }, in getCmpSelInstrCost()
485 { ISD::SETCC, MVT::v16i16, 4 }, in getCmpSelInstrCost()
486 { ISD::SETCC, MVT::v32i8, 4 }, in getCmpSelInstrCost()
489 static const CostTblEntry<MVT::SimpleValueType> AVX2CostTbl[] = { in getCmpSelInstrCost()
490 { ISD::SETCC, MVT::v4i64, 1 }, in getCmpSelInstrCost()
491 { ISD::SETCC, MVT::v8i32, 1 }, in getCmpSelInstrCost()
492 { ISD::SETCC, MVT::v16i16, 1 }, in getCmpSelInstrCost()
493 { ISD::SETCC, MVT::v32i8, 1 }, in getCmpSelInstrCost()
523 std::pair<unsigned, MVT> LT = TLI->getTypeLegalizationCost(Val); in getVectorInstrCost()
587 std::pair<unsigned, MVT> LT = TLI->getTypeLegalizationCost(Src); in getMemoryOpCost()
618 std::pair<unsigned, MVT> LT = TLI->getTypeLegalizationCost(ValTy); in getReductionCost()
620 MVT MTy = LT.second; in getReductionCost()
628 static const CostTblEntry<MVT::SimpleValueType> SSE42CostTblPairWise[] = { in getReductionCost()
629 { ISD::FADD, MVT::v2f64, 2 }, in getReductionCost()
630 { ISD::FADD, MVT::v4f32, 4 }, in getReductionCost()
631 { ISD::ADD, MVT::v2i64, 2 }, // The data reported by the IACA tool is "1.6". in getReductionCost()
632 { ISD::ADD, MVT::v4i32, 3 }, // The data reported by the IACA tool is "3.5". in getReductionCost()
633 { ISD::ADD, MVT::v8i16, 5 }, in getReductionCost()
636 static const CostTblEntry<MVT::SimpleValueType> AVX1CostTblPairWise[] = { in getReductionCost()
637 { ISD::FADD, MVT::v4f32, 4 }, in getReductionCost()
638 { ISD::FADD, MVT::v4f64, 5 }, in getReductionCost()
639 { ISD::FADD, MVT::v8f32, 7 }, in getReductionCost()
640 { ISD::ADD, MVT::v2i64, 1 }, // The data reported by the IACA tool is "1.5". in getReductionCost()
641 { ISD::ADD, MVT::v4i32, 3 }, // The data reported by the IACA tool is "3.5". in getReductionCost()
642 { ISD::ADD, MVT::v4i64, 5 }, // The data reported by the IACA tool is "4.8". in getReductionCost()
643 { ISD::ADD, MVT::v8i16, 5 }, in getReductionCost()
644 { ISD::ADD, MVT::v8i32, 5 }, in getReductionCost()
647 static const CostTblEntry<MVT::SimpleValueType> SSE42CostTblNoPairWise[] = { in getReductionCost()
648 { ISD::FADD, MVT::v2f64, 2 }, in getReductionCost()
649 { ISD::FADD, MVT::v4f32, 4 }, in getReductionCost()
650 { ISD::ADD, MVT::v2i64, 2 }, // The data reported by the IACA tool is "1.6". in getReductionCost()
651 { ISD::ADD, MVT::v4i32, 3 }, // The data reported by the IACA tool is "3.3". in getReductionCost()
652 { ISD::ADD, MVT::v8i16, 4 }, // The data reported by the IACA tool is "4.3". in getReductionCost()
655 static const CostTblEntry<MVT::SimpleValueType> AVX1CostTblNoPairWise[] = { in getReductionCost()
656 { ISD::FADD, MVT::v4f32, 3 }, in getReductionCost()
657 { ISD::FADD, MVT::v4f64, 3 }, in getReductionCost()
658 { ISD::FADD, MVT::v8f32, 4 }, in getReductionCost()
659 { ISD::ADD, MVT::v2i64, 1 }, // The data reported by the IACA tool is "1.5". in getReductionCost()
660 { ISD::ADD, MVT::v4i32, 3 }, // The data reported by the IACA tool is "2.8". in getReductionCost()
661 { ISD::ADD, MVT::v4i64, 3 }, in getReductionCost()
662 { ISD::ADD, MVT::v8i16, 4 }, in getReductionCost()
663 { ISD::ADD, MVT::v8i32, 5 }, in getReductionCost()