Lines Matching refs:ISD

88   int ISD = TLI->InstructionOpcodeToISD(Opcode);  in getArithmeticInstrCost()  local
89 assert(ISD && "Invalid opcode"); in getArithmeticInstrCost()
91 if (ISD == ISD::SDIV && in getArithmeticInstrCost()
114 { ISD::SDIV, MVT::v16i16, 6 }, // vpmulhw sequence in getArithmeticInstrCost()
115 { ISD::UDIV, MVT::v16i16, 6 }, // vpmulhuw sequence in getArithmeticInstrCost()
116 { ISD::SDIV, MVT::v8i32, 15 }, // vpmuldq sequence in getArithmeticInstrCost()
117 { ISD::UDIV, MVT::v8i32, 15 }, // vpmuludq sequence in getArithmeticInstrCost()
122 int Idx = CostTableLookup(AVX2UniformConstCostTable, ISD, LT.second); in getArithmeticInstrCost()
128 { ISD::SHL, MVT::v16i32, 1 }, in getArithmeticInstrCost()
129 { ISD::SRL, MVT::v16i32, 1 }, in getArithmeticInstrCost()
130 { ISD::SRA, MVT::v16i32, 1 }, in getArithmeticInstrCost()
131 { ISD::SHL, MVT::v8i64, 1 }, in getArithmeticInstrCost()
132 { ISD::SRL, MVT::v8i64, 1 }, in getArithmeticInstrCost()
133 { ISD::SRA, MVT::v8i64, 1 }, in getArithmeticInstrCost()
139 { ISD::SHL, MVT::v4i32, 1 }, in getArithmeticInstrCost()
140 { ISD::SRL, MVT::v4i32, 1 }, in getArithmeticInstrCost()
141 { ISD::SRA, MVT::v4i32, 1 }, in getArithmeticInstrCost()
142 { ISD::SHL, MVT::v8i32, 1 }, in getArithmeticInstrCost()
143 { ISD::SRL, MVT::v8i32, 1 }, in getArithmeticInstrCost()
144 { ISD::SRA, MVT::v8i32, 1 }, in getArithmeticInstrCost()
145 { ISD::SHL, MVT::v2i64, 1 }, in getArithmeticInstrCost()
146 { ISD::SRL, MVT::v2i64, 1 }, in getArithmeticInstrCost()
147 { ISD::SHL, MVT::v4i64, 1 }, in getArithmeticInstrCost()
148 { ISD::SRL, MVT::v4i64, 1 }, in getArithmeticInstrCost()
150 { ISD::SHL, MVT::v32i8, 42 }, // cmpeqb sequence. in getArithmeticInstrCost()
151 { ISD::SHL, MVT::v16i16, 16*10 }, // Scalarized. in getArithmeticInstrCost()
153 { ISD::SRL, MVT::v32i8, 32*10 }, // Scalarized. in getArithmeticInstrCost()
154 { ISD::SRL, MVT::v16i16, 8*10 }, // Scalarized. in getArithmeticInstrCost()
156 { ISD::SRA, MVT::v32i8, 32*10 }, // Scalarized. in getArithmeticInstrCost()
157 { ISD::SRA, MVT::v16i16, 16*10 }, // Scalarized. in getArithmeticInstrCost()
158 { ISD::SRA, MVT::v4i64, 4*10 }, // Scalarized. in getArithmeticInstrCost()
161 { ISD::SDIV, MVT::v32i8, 32*20 }, in getArithmeticInstrCost()
162 { ISD::SDIV, MVT::v16i16, 16*20 }, in getArithmeticInstrCost()
163 { ISD::SDIV, MVT::v8i32, 8*20 }, in getArithmeticInstrCost()
164 { ISD::SDIV, MVT::v4i64, 4*20 }, in getArithmeticInstrCost()
165 { ISD::UDIV, MVT::v32i8, 32*20 }, in getArithmeticInstrCost()
166 { ISD::UDIV, MVT::v16i16, 16*20 }, in getArithmeticInstrCost()
167 { ISD::UDIV, MVT::v8i32, 8*20 }, in getArithmeticInstrCost()
168 { ISD::UDIV, MVT::v4i64, 4*20 }, in getArithmeticInstrCost()
172 int Idx = CostTableLookup(AVX512CostTable, ISD, LT.second); in getArithmeticInstrCost()
178 if (ISD == ISD::SHL && LT.second == MVT::v16i16 && in getArithmeticInstrCost()
185 int Idx = CostTableLookup(AVX2CostTable, ISD, LT.second); in getArithmeticInstrCost()
195 { ISD::SHL, MVT::v16i8, 1 }, // psllw. in getArithmeticInstrCost()
196 { ISD::SHL, MVT::v8i16, 1 }, // psllw. in getArithmeticInstrCost()
197 { ISD::SHL, MVT::v4i32, 1 }, // pslld in getArithmeticInstrCost()
198 { ISD::SHL, MVT::v2i64, 1 }, // psllq. in getArithmeticInstrCost()
200 { ISD::SRL, MVT::v16i8, 1 }, // psrlw. in getArithmeticInstrCost()
201 { ISD::SRL, MVT::v8i16, 1 }, // psrlw. in getArithmeticInstrCost()
202 { ISD::SRL, MVT::v4i32, 1 }, // psrld. in getArithmeticInstrCost()
203 { ISD::SRL, MVT::v2i64, 1 }, // psrlq. in getArithmeticInstrCost()
205 { ISD::SRA, MVT::v16i8, 4 }, // psrlw, pand, pxor, psubb. in getArithmeticInstrCost()
206 { ISD::SRA, MVT::v8i16, 1 }, // psraw. in getArithmeticInstrCost()
207 { ISD::SRA, MVT::v4i32, 1 }, // psrad. in getArithmeticInstrCost()
209 { ISD::SDIV, MVT::v8i16, 6 }, // pmulhw sequence in getArithmeticInstrCost()
210 { ISD::UDIV, MVT::v8i16, 6 }, // pmulhuw sequence in getArithmeticInstrCost()
211 { ISD::SDIV, MVT::v4i32, 19 }, // pmuludq sequence in getArithmeticInstrCost()
212 { ISD::UDIV, MVT::v4i32, 15 }, // pmuludq sequence in getArithmeticInstrCost()
218 if (ISD == ISD::SDIV && LT.second == MVT::v4i32 && ST->hasSSE41()) in getArithmeticInstrCost()
221 int Idx = CostTableLookup(SSE2UniformConstCostTable, ISD, LT.second); in getArithmeticInstrCost()
226 if (ISD == ISD::SHL && in getArithmeticInstrCost()
238 ISD = ISD::MUL; in getArithmeticInstrCost()
250 { ISD::SHL, MVT::v16i8, 30 }, // cmpeqb sequence. in getArithmeticInstrCost()
251 { ISD::SHL, MVT::v8i16, 8*10 }, // Scalarized. in getArithmeticInstrCost()
252 { ISD::SHL, MVT::v4i32, 2*5 }, // We optimized this using mul. in getArithmeticInstrCost()
253 { ISD::SHL, MVT::v2i64, 2*10 }, // Scalarized. in getArithmeticInstrCost()
254 { ISD::SHL, MVT::v4i64, 4*10 }, // Scalarized. in getArithmeticInstrCost()
256 { ISD::SRL, MVT::v16i8, 16*10 }, // Scalarized. in getArithmeticInstrCost()
257 { ISD::SRL, MVT::v8i16, 8*10 }, // Scalarized. in getArithmeticInstrCost()
258 { ISD::SRL, MVT::v4i32, 4*10 }, // Scalarized. in getArithmeticInstrCost()
259 { ISD::SRL, MVT::v2i64, 2*10 }, // Scalarized. in getArithmeticInstrCost()
261 { ISD::SRA, MVT::v16i8, 16*10 }, // Scalarized. in getArithmeticInstrCost()
262 { ISD::SRA, MVT::v8i16, 8*10 }, // Scalarized. in getArithmeticInstrCost()
263 { ISD::SRA, MVT::v4i32, 4*10 }, // Scalarized. in getArithmeticInstrCost()
264 { ISD::SRA, MVT::v2i64, 2*10 }, // Scalarized. in getArithmeticInstrCost()
272 { ISD::SDIV, MVT::v16i8, 16*20 }, in getArithmeticInstrCost()
273 { ISD::SDIV, MVT::v8i16, 8*20 }, in getArithmeticInstrCost()
274 { ISD::SDIV, MVT::v4i32, 4*20 }, in getArithmeticInstrCost()
275 { ISD::SDIV, MVT::v2i64, 2*20 }, in getArithmeticInstrCost()
276 { ISD::UDIV, MVT::v16i8, 16*20 }, in getArithmeticInstrCost()
277 { ISD::UDIV, MVT::v8i16, 8*20 }, in getArithmeticInstrCost()
278 { ISD::UDIV, MVT::v4i32, 4*20 }, in getArithmeticInstrCost()
279 { ISD::UDIV, MVT::v2i64, 2*20 }, in getArithmeticInstrCost()
283 int Idx = CostTableLookup(SSE2CostTable, ISD, LT.second); in getArithmeticInstrCost()
292 { ISD::MUL, MVT::v16i16, 4 }, in getArithmeticInstrCost()
293 { ISD::MUL, MVT::v8i32, 4 }, in getArithmeticInstrCost()
294 { ISD::SUB, MVT::v8i32, 4 }, in getArithmeticInstrCost()
295 { ISD::ADD, MVT::v8i32, 4 }, in getArithmeticInstrCost()
296 { ISD::SUB, MVT::v4i64, 4 }, in getArithmeticInstrCost()
297 { ISD::ADD, MVT::v4i64, 4 }, in getArithmeticInstrCost()
303 { ISD::MUL, MVT::v4i64, 18 }, in getArithmeticInstrCost()
312 if (ISD == ISD::SHL && (VT == MVT::v8i32 || VT == MVT::v16i16) && in getArithmeticInstrCost()
314 ISD = ISD::MUL; in getArithmeticInstrCost()
316 int Idx = CostTableLookup(AVX1CostTable, ISD, VT); in getArithmeticInstrCost()
325 { ISD::MUL, MVT::v2i64, 9 }, in getArithmeticInstrCost()
326 { ISD::MUL, MVT::v4i64, 9 }, in getArithmeticInstrCost()
328 int Idx = CostTableLookup(CustomLowered, ISD, LT.second); in getArithmeticInstrCost()
334 if (ISD == ISD::MUL && LT.second == MVT::v4i32 && ST->hasSSE2() && in getArithmeticInstrCost()
369 {ISD::VECTOR_SHUFFLE, MVT::v4i64, 1}, // vblendpd in getShuffleCost()
370 {ISD::VECTOR_SHUFFLE, MVT::v4f64, 1}, // vblendpd in getShuffleCost()
372 {ISD::VECTOR_SHUFFLE, MVT::v8i32, 1}, // vblendps in getShuffleCost()
373 {ISD::VECTOR_SHUFFLE, MVT::v8f32, 1}, // vblendps in getShuffleCost()
377 {ISD::VECTOR_SHUFFLE, MVT::v16i16, 5}, in getShuffleCost()
381 {ISD::VECTOR_SHUFFLE, MVT::v32i8, 9} in getShuffleCost()
385 int Idx = CostTableLookup(AVXAltShuffleTbl, ISD::VECTOR_SHUFFLE, LT.second); in getShuffleCost()
392 {ISD::VECTOR_SHUFFLE, MVT::v2i64, 1}, in getShuffleCost()
393 {ISD::VECTOR_SHUFFLE, MVT::v2f64, 1}, in getShuffleCost()
397 {ISD::VECTOR_SHUFFLE, MVT::v4i32, 1}, in getShuffleCost()
398 {ISD::VECTOR_SHUFFLE, MVT::v4f32, 1}, in getShuffleCost()
401 {ISD::VECTOR_SHUFFLE, MVT::v8i16, 1}, in getShuffleCost()
405 {ISD::VECTOR_SHUFFLE, MVT::v16i8, 3} in getShuffleCost()
409 int Idx = CostTableLookup(SSE41AltShuffleTbl, ISD::VECTOR_SHUFFLE, LT.second); in getShuffleCost()
415 {ISD::VECTOR_SHUFFLE, MVT::v2i64, 1}, // movsd in getShuffleCost()
416 {ISD::VECTOR_SHUFFLE, MVT::v2f64, 1}, // movsd in getShuffleCost()
420 {ISD::VECTOR_SHUFFLE, MVT::v4i32, 2}, in getShuffleCost()
421 {ISD::VECTOR_SHUFFLE, MVT::v4f32, 2}, in getShuffleCost()
423 {ISD::VECTOR_SHUFFLE, MVT::v8i16, 3}, // pshufb + pshufb + or in getShuffleCost()
424 {ISD::VECTOR_SHUFFLE, MVT::v16i8, 3} // pshufb + pshufb + or in getShuffleCost()
428 int Idx = CostTableLookup(SSSE3AltShuffleTbl, ISD::VECTOR_SHUFFLE, LT.second); in getShuffleCost()
434 {ISD::VECTOR_SHUFFLE, MVT::v2i64, 1}, // movsd in getShuffleCost()
435 {ISD::VECTOR_SHUFFLE, MVT::v2f64, 1}, // movsd in getShuffleCost()
437 {ISD::VECTOR_SHUFFLE, MVT::v4i32, 2}, // shufps + pshufd in getShuffleCost()
438 {ISD::VECTOR_SHUFFLE, MVT::v4f32, 2}, // shufps + pshufd in getShuffleCost()
441 {ISD::VECTOR_SHUFFLE, MVT::v8i16, 8}, // 4 x pextrw + 4 pinsrw. in getShuffleCost()
444 {ISD::VECTOR_SHUFFLE, MVT::v16i8, 48} in getShuffleCost()
448 int Idx = CostTableLookup(SSEAltShuffleTbl, ISD::VECTOR_SHUFFLE, LT.second); in getShuffleCost()
458 int ISD = TLI->InstructionOpcodeToISD(Opcode); in getCastInstrCost() local
459 assert(ISD && "Invalid opcode"); in getCastInstrCost()
469 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i64, 2*10 }, in getCastInstrCost()
470 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v4i32, 4*10 }, in getCastInstrCost()
471 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v8i16, 8*10 }, in getCastInstrCost()
472 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v16i8, 16*10 }, in getCastInstrCost()
473 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v2i64, 2*10 }, in getCastInstrCost()
474 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v4i32, 4*10 }, in getCastInstrCost()
475 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v8i16, 8*10 }, in getCastInstrCost()
476 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v16i8, 16*10 }, in getCastInstrCost()
478 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v2i64, 15 }, in getCastInstrCost()
479 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i32, 8 }, in getCastInstrCost()
480 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v8i16, 15 }, in getCastInstrCost()
481 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v16i8, 8 }, in getCastInstrCost()
482 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v2i64, 15 }, in getCastInstrCost()
483 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i32, 15 }, in getCastInstrCost()
484 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v8i16, 15 }, in getCastInstrCost()
485 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v16i8, 8 }, in getCastInstrCost()
490 ConvertCostTableLookup(SSE2ConvTbl, ISD, LTDest.second, LTSrc.second); in getCastInstrCost()
497 { ISD::FP_EXTEND, MVT::v8f64, MVT::v8f32, 1 }, in getCastInstrCost()
498 { ISD::FP_EXTEND, MVT::v8f64, MVT::v16f32, 3 }, in getCastInstrCost()
499 { ISD::FP_ROUND, MVT::v8f32, MVT::v8f64, 1 }, in getCastInstrCost()
500 { ISD::FP_ROUND, MVT::v16f32, MVT::v8f64, 3 }, in getCastInstrCost()
502 { ISD::TRUNCATE, MVT::v16i8, MVT::v16i32, 1 }, in getCastInstrCost()
503 { ISD::TRUNCATE, MVT::v16i16, MVT::v16i32, 1 }, in getCastInstrCost()
504 { ISD::TRUNCATE, MVT::v8i16, MVT::v8i64, 1 }, in getCastInstrCost()
505 { ISD::TRUNCATE, MVT::v8i32, MVT::v8i64, 1 }, in getCastInstrCost()
506 { ISD::TRUNCATE, MVT::v16i32, MVT::v8i64, 4 }, in getCastInstrCost()
509 { ISD::SIGN_EXTEND, MVT::v16i32, MVT::v16i1, 2 }, in getCastInstrCost()
510 { ISD::ZERO_EXTEND, MVT::v16i32, MVT::v16i1, 2 }, in getCastInstrCost()
512 { ISD::SIGN_EXTEND, MVT::v16i32, MVT::v16i8, 1 }, in getCastInstrCost()
513 { ISD::ZERO_EXTEND, MVT::v16i32, MVT::v16i8, 1 }, in getCastInstrCost()
514 { ISD::SIGN_EXTEND, MVT::v16i32, MVT::v16i16, 1 }, in getCastInstrCost()
515 { ISD::ZERO_EXTEND, MVT::v16i32, MVT::v16i16, 1 }, in getCastInstrCost()
516 { ISD::SIGN_EXTEND, MVT::v8i64, MVT::v16i32, 3 }, in getCastInstrCost()
517 { ISD::ZERO_EXTEND, MVT::v8i64, MVT::v16i32, 3 }, in getCastInstrCost()
519 { ISD::SINT_TO_FP, MVT::v16f32, MVT::v16i1, 3 }, in getCastInstrCost()
520 { ISD::SINT_TO_FP, MVT::v16f32, MVT::v16i8, 2 }, in getCastInstrCost()
521 { ISD::SINT_TO_FP, MVT::v16f32, MVT::v16i16, 2 }, in getCastInstrCost()
522 { ISD::SINT_TO_FP, MVT::v16f32, MVT::v16i32, 1 }, in getCastInstrCost()
523 { ISD::SINT_TO_FP, MVT::v8f64, MVT::v8i1, 4 }, in getCastInstrCost()
524 { ISD::SINT_TO_FP, MVT::v8f64, MVT::v8i16, 2 }, in getCastInstrCost()
525 { ISD::SINT_TO_FP, MVT::v8f64, MVT::v8i32, 1 }, in getCastInstrCost()
529 int Idx = ConvertCostTableLookup(AVX512ConversionTbl, ISD, LTDest.second, in getCastInstrCost()
543 { ISD::SIGN_EXTEND, MVT::v16i16, MVT::v16i8, 1 }, in getCastInstrCost()
544 { ISD::ZERO_EXTEND, MVT::v16i16, MVT::v16i8, 1 }, in getCastInstrCost()
545 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i1, 3 }, in getCastInstrCost()
546 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i1, 3 }, in getCastInstrCost()
547 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i8, 3 }, in getCastInstrCost()
548 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i8, 3 }, in getCastInstrCost()
549 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i16, 1 }, in getCastInstrCost()
550 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i16, 1 }, in getCastInstrCost()
551 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i1, 3 }, in getCastInstrCost()
552 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i1, 3 }, in getCastInstrCost()
553 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i8, 3 }, in getCastInstrCost()
554 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i8, 3 }, in getCastInstrCost()
555 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i16, 3 }, in getCastInstrCost()
556 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i16, 3 }, in getCastInstrCost()
557 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i32, 1 }, in getCastInstrCost()
558 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i32, 1 }, in getCastInstrCost()
560 { ISD::TRUNCATE, MVT::v4i8, MVT::v4i64, 2 }, in getCastInstrCost()
561 { ISD::TRUNCATE, MVT::v4i16, MVT::v4i64, 2 }, in getCastInstrCost()
562 { ISD::TRUNCATE, MVT::v4i32, MVT::v4i64, 2 }, in getCastInstrCost()
563 { ISD::TRUNCATE, MVT::v8i8, MVT::v8i32, 2 }, in getCastInstrCost()
564 { ISD::TRUNCATE, MVT::v8i16, MVT::v8i32, 2 }, in getCastInstrCost()
565 { ISD::TRUNCATE, MVT::v8i32, MVT::v8i64, 4 }, in getCastInstrCost()
567 { ISD::FP_EXTEND, MVT::v8f64, MVT::v8f32, 3 }, in getCastInstrCost()
568 { ISD::FP_ROUND, MVT::v8f32, MVT::v8f64, 3 }, in getCastInstrCost()
570 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i32, 8 }, in getCastInstrCost()
575 { ISD::SIGN_EXTEND, MVT::v16i16, MVT::v16i8, 4 }, in getCastInstrCost()
576 { ISD::ZERO_EXTEND, MVT::v16i16, MVT::v16i8, 4 }, in getCastInstrCost()
577 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i1, 7 }, in getCastInstrCost()
578 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i1, 4 }, in getCastInstrCost()
579 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i8, 7 }, in getCastInstrCost()
580 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i8, 4 }, in getCastInstrCost()
581 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i16, 4 }, in getCastInstrCost()
582 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i16, 4 }, in getCastInstrCost()
583 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i1, 6 }, in getCastInstrCost()
584 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i1, 4 }, in getCastInstrCost()
585 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i8, 6 }, in getCastInstrCost()
586 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i8, 4 }, in getCastInstrCost()
587 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i16, 6 }, in getCastInstrCost()
588 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i16, 3 }, in getCastInstrCost()
589 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i32, 4 }, in getCastInstrCost()
590 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i32, 4 }, in getCastInstrCost()
592 { ISD::TRUNCATE, MVT::v4i8, MVT::v4i64, 4 }, in getCastInstrCost()
593 { ISD::TRUNCATE, MVT::v4i16, MVT::v4i64, 4 }, in getCastInstrCost()
594 { ISD::TRUNCATE, MVT::v4i32, MVT::v4i64, 4 }, in getCastInstrCost()
595 { ISD::TRUNCATE, MVT::v8i8, MVT::v8i32, 4 }, in getCastInstrCost()
596 { ISD::TRUNCATE, MVT::v8i16, MVT::v8i32, 5 }, in getCastInstrCost()
597 { ISD::TRUNCATE, MVT::v16i8, MVT::v16i16, 4 }, in getCastInstrCost()
598 { ISD::TRUNCATE, MVT::v8i32, MVT::v8i64, 9 }, in getCastInstrCost()
600 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i1, 8 }, in getCastInstrCost()
601 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i8, 8 }, in getCastInstrCost()
602 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i16, 5 }, in getCastInstrCost()
603 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i32, 1 }, in getCastInstrCost()
604 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i1, 3 }, in getCastInstrCost()
605 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i8, 3 }, in getCastInstrCost()
606 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i16, 3 }, in getCastInstrCost()
607 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i32, 1 }, in getCastInstrCost()
608 { ISD::SINT_TO_FP, MVT::v4f64, MVT::v4i1, 3 }, in getCastInstrCost()
609 { ISD::SINT_TO_FP, MVT::v4f64, MVT::v4i8, 3 }, in getCastInstrCost()
610 { ISD::SINT_TO_FP, MVT::v4f64, MVT::v4i16, 3 }, in getCastInstrCost()
611 { ISD::SINT_TO_FP, MVT::v4f64, MVT::v4i32, 1 }, in getCastInstrCost()
613 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i1, 6 }, in getCastInstrCost()
614 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i8, 5 }, in getCastInstrCost()
615 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i16, 5 }, in getCastInstrCost()
616 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i32, 9 }, in getCastInstrCost()
617 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i1, 7 }, in getCastInstrCost()
618 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i8, 2 }, in getCastInstrCost()
619 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i16, 2 }, in getCastInstrCost()
620 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i32, 6 }, in getCastInstrCost()
621 { ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i1, 7 }, in getCastInstrCost()
622 { ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i8, 2 }, in getCastInstrCost()
623 { ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i16, 2 }, in getCastInstrCost()
624 { ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i32, 6 }, in getCastInstrCost()
630 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i64, 2*10 }, in getCastInstrCost()
631 { ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i64, 4*10 }, in getCastInstrCost()
633 { ISD::FP_TO_SINT, MVT::v8i8, MVT::v8f32, 7 }, in getCastInstrCost()
634 { ISD::FP_TO_SINT, MVT::v4i8, MVT::v4f32, 1 }, in getCastInstrCost()
640 { ISD::FP_TO_UINT, MVT::v8i32, MVT::v8f32, 8*4 }, in getCastInstrCost()
641 { ISD::FP_TO_UINT, MVT::v4i32, MVT::v4f64, 4*4 }, in getCastInstrCost()
645 int Idx = ConvertCostTableLookup(AVX2ConversionTbl, ISD, in getCastInstrCost()
652 int Idx = ConvertCostTableLookup(AVXConversionTbl, ISD, DstTy.getSimpleVT(), in getCastInstrCost()
668 int ISD = TLI->InstructionOpcodeToISD(Opcode); in getCmpSelInstrCost() local
669 assert(ISD && "Invalid opcode"); in getCmpSelInstrCost()
672 { ISD::SETCC, MVT::v2f64, 1 }, in getCmpSelInstrCost()
673 { ISD::SETCC, MVT::v4f32, 1 }, in getCmpSelInstrCost()
674 { ISD::SETCC, MVT::v2i64, 1 }, in getCmpSelInstrCost()
675 { ISD::SETCC, MVT::v4i32, 1 }, in getCmpSelInstrCost()
676 { ISD::SETCC, MVT::v8i16, 1 }, in getCmpSelInstrCost()
677 { ISD::SETCC, MVT::v16i8, 1 }, in getCmpSelInstrCost()
681 { ISD::SETCC, MVT::v4f64, 1 }, in getCmpSelInstrCost()
682 { ISD::SETCC, MVT::v8f32, 1 }, in getCmpSelInstrCost()
684 { ISD::SETCC, MVT::v4i64, 4 }, in getCmpSelInstrCost()
685 { ISD::SETCC, MVT::v8i32, 4 }, in getCmpSelInstrCost()
686 { ISD::SETCC, MVT::v16i16, 4 }, in getCmpSelInstrCost()
687 { ISD::SETCC, MVT::v32i8, 4 }, in getCmpSelInstrCost()
691 { ISD::SETCC, MVT::v4i64, 1 }, in getCmpSelInstrCost()
692 { ISD::SETCC, MVT::v8i32, 1 }, in getCmpSelInstrCost()
693 { ISD::SETCC, MVT::v16i16, 1 }, in getCmpSelInstrCost()
694 { ISD::SETCC, MVT::v32i8, 1 }, in getCmpSelInstrCost()
698 { ISD::SETCC, MVT::v8i64, 1 }, in getCmpSelInstrCost()
699 { ISD::SETCC, MVT::v16i32, 1 }, in getCmpSelInstrCost()
700 { ISD::SETCC, MVT::v8f64, 1 }, in getCmpSelInstrCost()
701 { ISD::SETCC, MVT::v16f32, 1 }, in getCmpSelInstrCost()
705 int Idx = CostTableLookup(AVX512CostTbl, ISD, MTy); in getCmpSelInstrCost()
711 int Idx = CostTableLookup(AVX2CostTbl, ISD, MTy); in getCmpSelInstrCost()
717 int Idx = CostTableLookup(AVX1CostTbl, ISD, MTy); in getCmpSelInstrCost()
723 int Idx = CostTableLookup(SSE42CostTbl, ISD, MTy); in getCmpSelInstrCost()
888 int ISD = TLI->InstructionOpcodeToISD(Opcode); in getReductionCost() local
889 assert(ISD && "Invalid opcode"); in getReductionCost()
895 { ISD::FADD, MVT::v2f64, 2 }, in getReductionCost()
896 { ISD::FADD, MVT::v4f32, 4 }, in getReductionCost()
897 { ISD::ADD, MVT::v2i64, 2 }, // The data reported by the IACA tool is "1.6". in getReductionCost()
898 { ISD::ADD, MVT::v4i32, 3 }, // The data reported by the IACA tool is "3.5". in getReductionCost()
899 { ISD::ADD, MVT::v8i16, 5 }, in getReductionCost()
903 { ISD::FADD, MVT::v4f32, 4 }, in getReductionCost()
904 { ISD::FADD, MVT::v4f64, 5 }, in getReductionCost()
905 { ISD::FADD, MVT::v8f32, 7 }, in getReductionCost()
906 { ISD::ADD, MVT::v2i64, 1 }, // The data reported by the IACA tool is "1.5". in getReductionCost()
907 { ISD::ADD, MVT::v4i32, 3 }, // The data reported by the IACA tool is "3.5". in getReductionCost()
908 { ISD::ADD, MVT::v4i64, 5 }, // The data reported by the IACA tool is "4.8". in getReductionCost()
909 { ISD::ADD, MVT::v8i16, 5 }, in getReductionCost()
910 { ISD::ADD, MVT::v8i32, 5 }, in getReductionCost()
914 { ISD::FADD, MVT::v2f64, 2 }, in getReductionCost()
915 { ISD::FADD, MVT::v4f32, 4 }, in getReductionCost()
916 { ISD::ADD, MVT::v2i64, 2 }, // The data reported by the IACA tool is "1.6". in getReductionCost()
917 { ISD::ADD, MVT::v4i32, 3 }, // The data reported by the IACA tool is "3.3". in getReductionCost()
918 { ISD::ADD, MVT::v8i16, 4 }, // The data reported by the IACA tool is "4.3". in getReductionCost()
922 { ISD::FADD, MVT::v4f32, 3 }, in getReductionCost()
923 { ISD::FADD, MVT::v4f64, 3 }, in getReductionCost()
924 { ISD::FADD, MVT::v8f32, 4 }, in getReductionCost()
925 { ISD::ADD, MVT::v2i64, 1 }, // The data reported by the IACA tool is "1.5". in getReductionCost()
926 { ISD::ADD, MVT::v4i32, 3 }, // The data reported by the IACA tool is "2.8". in getReductionCost()
927 { ISD::ADD, MVT::v4i64, 3 }, in getReductionCost()
928 { ISD::ADD, MVT::v8i16, 4 }, in getReductionCost()
929 { ISD::ADD, MVT::v8i32, 5 }, in getReductionCost()
934 int Idx = CostTableLookup(AVX1CostTblPairWise, ISD, MTy); in getReductionCost()
940 int Idx = CostTableLookup(SSE42CostTblPairWise, ISD, MTy); in getReductionCost()
946 int Idx = CostTableLookup(AVX1CostTblNoPairWise, ISD, MTy); in getReductionCost()
952 int Idx = CostTableLookup(SSE42CostTblNoPairWise, ISD, MTy); in getReductionCost()