Lines Matching refs:SRA
322 { ISD::SRA, MVT::v64i8, 4 }, // psrlw, pand, pxor, psubb. in getArithmeticInstrCost()
333 { ISD::SRA, MVT::v2i64, 1 }, in getArithmeticInstrCost()
334 { ISD::SRA, MVT::v4i64, 1 }, in getArithmeticInstrCost()
335 { ISD::SRA, MVT::v8i64, 1 }, in getArithmeticInstrCost()
339 { ISD::SRA, MVT::v64i8, 8 }, // psrlw, pand, pxor, psubb. in getArithmeticInstrCost()
357 { ISD::SRA, MVT::v32i8, 4 }, // psrlw, pand, pxor, psubb. in getArithmeticInstrCost()
359 { ISD::SRA, MVT::v4i64, 4 }, // 2 x psrad + shuffle. in getArithmeticInstrCost()
377 { ISD::SRA, MVT::v16i8, 4 }, // psrlw, pand, pxor, psubb. in getArithmeticInstrCost()
381 { ISD::SRA, MVT::v32i8, 8+2 }, // 2*(psrlw, pand, pxor, psubb) + split. in getArithmeticInstrCost()
512 { ISD::SRA, MVT::v16i8, 4 }, // extend/vpsravw/pack sequence. in getArithmeticInstrCost()
515 { ISD::SRA, MVT::v32i8, 6 }, // extend/vpsravw/pack sequence. in getArithmeticInstrCost()
518 { ISD::SRA, MVT::v64i8, 15 }, // extend/vpsravw/pack sequence. in getArithmeticInstrCost()
522 { ISD::SRA, MVT::v8i16, 1 }, // vpsravw in getArithmeticInstrCost()
525 { ISD::SRA, MVT::v16i16, 1 }, // vpsravw in getArithmeticInstrCost()
528 { ISD::SRA, MVT::v32i16, 1 }, // vpsravw in getArithmeticInstrCost()
539 { ISD::SRA, MVT::v16i16, 1 }, // psraw. in getArithmeticInstrCost()
542 { ISD::SRA, MVT::v32i16, 2 }, // 2*psraw. in getArithmeticInstrCost()
546 { ISD::SRA, MVT::v8i32, 1 }, // psrad in getArithmeticInstrCost()
569 { ISD::SRA, MVT::v8i16, 1 }, // psraw. in getArithmeticInstrCost()
570 { ISD::SRA, MVT::v4i32, 1 }, // psrad. in getArithmeticInstrCost()
595 { ISD::SRA, MVT::v64i8, 24 }, // vpblendvb sequence. in getArithmeticInstrCost()
606 { ISD::SRA, MVT::v4i32, 1 }, in getArithmeticInstrCost()
609 { ISD::SRA, MVT::v8i32, 1 }, in getArithmeticInstrCost()
612 { ISD::SRA, MVT::v16i32, 1 }, in getArithmeticInstrCost()
621 { ISD::SRA, MVT::v2i64, 1 }, in getArithmeticInstrCost()
622 { ISD::SRA, MVT::v4i64, 1 }, in getArithmeticInstrCost()
623 { ISD::SRA, MVT::v8i64, 1 }, in getArithmeticInstrCost()
658 { ISD::SRA, MVT::v4i32, 2 }, // vpsravd (Haswell from agner.org) in getArithmeticInstrCost()
661 { ISD::SRA, MVT::v8i32, 2 }, // vpsravd (Haswell from agner.org) in getArithmeticInstrCost()
700 { ISD::SRA, MVT::v16i8, 2 }, in getArithmeticInstrCost()
703 { ISD::SRA, MVT::v8i16, 2 }, in getArithmeticInstrCost()
706 { ISD::SRA, MVT::v4i32, 2 }, in getArithmeticInstrCost()
709 { ISD::SRA, MVT::v2i64, 2 }, in getArithmeticInstrCost()
713 { ISD::SRA, MVT::v32i8, 4+2 }, in getArithmeticInstrCost()
716 { ISD::SRA, MVT::v16i16, 4+2 }, in getArithmeticInstrCost()
719 { ISD::SRA, MVT::v8i32, 4+2 }, in getArithmeticInstrCost()
722 { ISD::SRA, MVT::v4i64, 4+2 }, in getArithmeticInstrCost()
730 if ((ShiftISD == ISD::SRL || ShiftISD == ISD::SRA) && in getArithmeticInstrCost()
749 { ISD::SRA, MVT::v16i16, 2+2 }, // 2*psraw + split. in getArithmeticInstrCost()
750 { ISD::SRA, MVT::v8i32, 2+2 }, // 2*psrad + split. in getArithmeticInstrCost()
751 { ISD::SRA, MVT::v2i64, 4 }, // 2*psrad + shuffle. in getArithmeticInstrCost()
752 { ISD::SRA, MVT::v4i64, 8+2 }, // 2*(2*psrad + shuffle) + split. in getArithmeticInstrCost()
760 if (ISD == ISD::SRA && LT.second == MVT::v4i64 && ST->hasAVX2()) in getArithmeticInstrCost()
793 { ISD::SRA, MVT::v16i8, 17 }, // vpblendvb sequence. in getArithmeticInstrCost()
794 { ISD::SRA, MVT::v32i8, 17 }, // vpblendvb sequence. in getArithmeticInstrCost()
795 { ISD::SRA, MVT::v64i8, 34 }, // 2*vpblendvb sequence. in getArithmeticInstrCost()
796 { ISD::SRA, MVT::v8i16, 5 }, // extend/vpsravd/pack sequence. in getArithmeticInstrCost()
797 { ISD::SRA, MVT::v16i16, 7 }, // extend/vpsravd/pack sequence. in getArithmeticInstrCost()
798 { ISD::SRA, MVT::v32i16, 14 }, // 2*extend/vpsravd/pack sequence. in getArithmeticInstrCost()
799 { ISD::SRA, MVT::v2i64, 2 }, // srl/xor/sub sequence. in getArithmeticInstrCost()
800 { ISD::SRA, MVT::v4i64, 2 }, // srl/xor/sub sequence. in getArithmeticInstrCost()
871 { ISD::SRA, MVT::v32i8, 44 }, // pblendvb sequence + split. in getArithmeticInstrCost()
872 { ISD::SRA, MVT::v16i16, 28 }, // pblendvb sequence + split. in getArithmeticInstrCost()
873 { ISD::SRA, MVT::v4i32, 6 }, // Shift each lane + blend. in getArithmeticInstrCost()
874 { ISD::SRA, MVT::v8i32, 14 }, // Shift each lane + blend + split. in getArithmeticInstrCost()
875 { ISD::SRA, MVT::v2i64, 5 }, // Shift each lane + blend. in getArithmeticInstrCost()
876 { ISD::SRA, MVT::v4i64, 12 }, // Shift each lane + blend + split. in getArithmeticInstrCost()
934 { ISD::SRA, MVT::v16i8, 21 }, // pblendvb sequence. in getArithmeticInstrCost()
935 { ISD::SRA, MVT::v8i16, 13 }, // pblendvb sequence. in getArithmeticInstrCost()
957 { ISD::SRA, MVT::v16i8, 27 }, // unpacked cmpgtb sequence. in getArithmeticInstrCost()
958 { ISD::SRA, MVT::v8i16, 16 }, // cmpgtw sequence. in getArithmeticInstrCost()
959 { ISD::SRA, MVT::v4i32, 12 }, // Shift each lane + blend. in getArithmeticInstrCost()
960 { ISD::SRA, MVT::v2i64, 8 }, // srl/xor/sub splat+shuffle sequence. in getArithmeticInstrCost()