|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp 621 static OpRef res(int N) { return OpRef(Whole | (N & Index)); }
622 static OpRef fail() { return OpRef(Invalid); }
624 static OpRef lo(const OpRef &R) {
624 static OpRef lo(const OpRef &R) {
628 static OpRef hi(const OpRef &R) {
628 static OpRef hi(const OpRef &R) {
632 static OpRef undef(MVT Ty) { return OpRef(Undef | Ty.SimpleTy); }
665 std::vector<OpRef> Ops;
679 unsigned push(unsigned Opc, MVT Ty, std::vector<OpRef> &&Ops) {
737 for (const auto &R : Ops) {
838 OpRef concat(OpRef Va, OpRef Vb, ResultStack &Results);
838 OpRef concat(OpRef Va, OpRef Vb, ResultStack &Results);
838 OpRef concat(OpRef Va, OpRef Vb, ResultStack &Results);
839 OpRef packs(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results,
839 OpRef packs(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results,
839 OpRef packs(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results,
841 OpRef packp(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results,
841 OpRef packp(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results,
841 OpRef packp(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results,
843 OpRef vmuxs(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
843 OpRef vmuxs(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
843 OpRef vmuxs(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
845 OpRef vmuxp(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
845 OpRef vmuxp(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
845 OpRef vmuxp(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
848 OpRef shuffs1(ShuffleMask SM, OpRef Va, ResultStack &Results);
848 OpRef shuffs1(ShuffleMask SM, OpRef Va, ResultStack &Results);
849 OpRef shuffs2(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
849 OpRef shuffs2(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
849 OpRef shuffs2(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
850 OpRef shuffp1(ShuffleMask SM, OpRef Va, ResultStack &Results);
850 OpRef shuffp1(ShuffleMask SM, OpRef Va, ResultStack &Results);
851 OpRef shuffp2(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
851 OpRef shuffp2(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
851 OpRef shuffp2(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
853 OpRef butterfly(ShuffleMask SM, OpRef Va, ResultStack &Results);
853 OpRef butterfly(ShuffleMask SM, OpRef Va, ResultStack &Results);
854 OpRef contracting(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
854 OpRef contracting(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
854 OpRef contracting(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
855 OpRef expanding(ShuffleMask SM, OpRef Va, ResultStack &Results);
855 OpRef expanding(ShuffleMask SM, OpRef Va, ResultStack &Results);
856 OpRef perfect(ShuffleMask SM, OpRef Va, ResultStack &Results);
856 OpRef perfect(ShuffleMask SM, OpRef Va, ResultStack &Results);
990 for (const OpRef &R : Node.Ops) {
996 if (R.OpN & OpRef::Undef) {
997 MVT::SimpleValueType SVT = MVT::SimpleValueType(R.OpN & OpRef::Index);
1002 unsigned Part = R.OpN & OpRef::Whole;
1003 int Idx = SignExtend32(R.OpN & OpRef::Index, OpRef::IndexBits);
1003 int Idx = SignExtend32(R.OpN & OpRef::Index, OpRef::IndexBits);
1009 if (Part != OpRef::Whole) {
1013 unsigned Sub = (Part == OpRef::LoHalf) ? Hexagon::vsub_lo
1039 OpRef HvxSelector::concat(OpRef Lo, OpRef Hi, ResultStack &Results) {
1039 OpRef HvxSelector::concat(OpRef Lo, OpRef Hi, ResultStack &Results) {
1039 OpRef HvxSelector::concat(OpRef Lo, OpRef Hi, ResultStack &Results) {
1047 return OpRef::res(Results.top());
1051 OpRef HvxSelector::packs(ShuffleMask SM, OpRef Va, OpRef Vb,
1051 OpRef HvxSelector::packs(ShuffleMask SM, OpRef Va, OpRef Vb,
1051 OpRef HvxSelector::packs(ShuffleMask SM, OpRef Va, OpRef Vb,
1056 return OpRef::fail();
1110 Results.push(Hexagon::V6_valignb, Ty, {Vb, Va, OpRef::res(Top)});
1118 return OpRef::res(Results.top());
1145 return OpRef::fail();
1148 OpRef HvxSelector::packp(ShuffleMask SM, OpRef Va, OpRef Vb,
1148 OpRef HvxSelector::packp(ShuffleMask SM, OpRef Va, OpRef Vb,
1148 OpRef HvxSelector::packp(ShuffleMask SM, OpRef Va, OpRef Vb,
1160 return OpRef::undef(getPairVT(MVT::i8));
1165 return OpRef::fail();
1169 OpRef Inp[2] = { Va, Vb };
1170 OpRef Out[2] = { OpRef::undef(HalfTy), OpRef::undef(HalfTy) };
1170 OpRef Out[2] = { OpRef::undef(HalfTy), OpRef::undef(HalfTy) };
1170 OpRef Out[2] = { OpRef::undef(HalfTy), OpRef::undef(HalfTy) };
1178 OpRef Op = Inp[I/2];
1179 Out[Idx] = (I & 1) ? OpRef::hi(Op) : OpRef::lo(Op);
1179 Out[Idx] = (I & 1) ? OpRef::hi(Op) : OpRef::lo(Op);
1197 OpRef HvxSelector::vmuxs(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
1197 OpRef HvxSelector::vmuxs(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
1197 OpRef HvxSelector::vmuxs(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
1205 Results.push(Hexagon::V6_veqb, BoolTy, {OpRef(B), OpRef::res(-1)});
1206 Results.push(Hexagon::V6_vmux, ByteTy, {OpRef::res(-1), Vb, Va});
1207 return OpRef::res(Results.top());
1210 OpRef HvxSelector::vmuxp(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
1210 OpRef HvxSelector::vmuxp(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
1210 OpRef HvxSelector::vmuxp(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
1214 OpRef L = vmuxs(Bytes.take_front(S), OpRef::lo(Va), OpRef::lo(Vb), Results);
1214 OpRef L = vmuxs(Bytes.take_front(S), OpRef::lo(Va), OpRef::lo(Vb), Results);
1214 OpRef L = vmuxs(Bytes.take_front(S), OpRef::lo(Va), OpRef::lo(Vb), Results);
1215 OpRef H = vmuxs(Bytes.drop_front(S), OpRef::hi(Va), OpRef::hi(Vb), Results);
1215 OpRef H = vmuxs(Bytes.drop_front(S), OpRef::hi(Va), OpRef::hi(Vb), Results);
1215 OpRef H = vmuxs(Bytes.drop_front(S), OpRef::hi(Va), OpRef::hi(Vb), Results);
1219 OpRef HvxSelector::shuffs1(ShuffleMask SM, OpRef Va, ResultStack &Results) {
1219 OpRef HvxSelector::shuffs1(ShuffleMask SM, OpRef Va, ResultStack &Results) {
1229 return OpRef::undef(getSingleVT(MVT::i8));
1231 OpRef P = perfect(SM, Va, Results);
1237 OpRef HvxSelector::shuffs2(ShuffleMask SM, OpRef Va, OpRef Vb,
1237 OpRef HvxSelector::shuffs2(ShuffleMask SM, OpRef Va, OpRef Vb,
1237 OpRef HvxSelector::shuffs2(ShuffleMask SM, OpRef Va, OpRef Vb,
1241 return OpRef::undef(getSingleVT(MVT::i8));
1243 OpRef C = contracting(SM, Va, Vb, Results);
1249 OpRef P = packs(SM, Va, Vb, Results, NewMask);
1256 OpRef L = shuffs1(ShuffleMask(MaskL), Va, Results);
1257 OpRef R = shuffs1(ShuffleMask(MaskR), Vb, Results);
1259 return OpRef::fail();
1269 OpRef HvxSelector::shuffp1(ShuffleMask SM, OpRef Va, ResultStack &Results) {
1269 OpRef HvxSelector::shuffp1(ShuffleMask SM, OpRef Va, ResultStack &Results) {
1276 return OpRef::undef(getPairVT(MVT::i8));
1279 OpRef P = packs(SM, OpRef::lo(Va), OpRef::hi(Va), Results, PackedMask);
1279 OpRef P = packs(SM, OpRef::lo(Va), OpRef::hi(Va), Results, PackedMask);
1279 OpRef P = packs(SM, OpRef::lo(Va), OpRef::hi(Va), Results, PackedMask);
1282 OpRef E = expanding(PM, P, Results);
1286 OpRef L = shuffs1(PM.lo(), P, Results);
1287 OpRef H = shuffs1(PM.hi(), P, Results);
1292 OpRef R = perfect(SM, Va, Results);
1297 OpRef L = shuffs2(SM.lo(), OpRef::lo(Va), OpRef::hi(Va), Results);
1297 OpRef L = shuffs2(SM.lo(), OpRef::lo(Va), OpRef::hi(Va), Results);
1297 OpRef L = shuffs2(SM.lo(), OpRef::lo(Va), OpRef::hi(Va), Results);
1298 OpRef H = shuffs2(SM.hi(), OpRef::lo(Va), OpRef::hi(Va), Results);
1298 OpRef H = shuffs2(SM.hi(), OpRef::lo(Va), OpRef::hi(Va), Results);
1298 OpRef H = shuffs2(SM.hi(), OpRef::lo(Va), OpRef::hi(Va), Results);
1302 return OpRef::fail();
1305 OpRef HvxSelector::shuffp2(ShuffleMask SM, OpRef Va, OpRef Vb,
1305 OpRef HvxSelector::shuffp2(ShuffleMask SM, OpRef Va, OpRef Vb,
1305 OpRef HvxSelector::shuffp2(ShuffleMask SM, OpRef Va, OpRef Vb,
1309 return OpRef::undef(getPairVT(MVT::i8));
1313 OpRef P = packp(SM, Va, Vb, Results, PackedMask);
1320 OpRef L = shuffp1(ShuffleMask(MaskL), Va, Results);
1321 OpRef R = shuffp1(ShuffleMask(MaskR), Vb, Results);
1323 return OpRef::fail();
1491 OpRef HvxSelector::contracting(ShuffleMask SM, OpRef Va, OpRef Vb,
1491 OpRef HvxSelector::contracting(ShuffleMask SM, OpRef Va, OpRef Vb,
1491 OpRef HvxSelector::contracting(ShuffleMask SM, OpRef Va, OpRef Vb,
1495 return OpRef::fail();
1511 return OpRef::fail();
1538 return OpRef::fail();
1541 return OpRef::fail();
1544 return OpRef::fail();
1547 return OpRef::fail();
1550 return OpRef::res(Results.top());
1558 return OpRef::fail();
1565 return OpRef::fail();
1568 return OpRef::fail();
1582 return OpRef::res(Results.top());
1593 return OpRef::fail();
1597 return OpRef::fail();
1612 return OpRef::res(Results.top());
1615 OpRef HvxSelector::expanding(ShuffleMask SM, OpRef Va, ResultStack &Results) {
1615 OpRef HvxSelector::expanding(ShuffleMask SM, OpRef Va, ResultStack &Results) {
1639 return OpRef::fail();
1643 return OpRef::fail();
1652 return OpRef::fail();
1654 return OpRef::fail();
1660 return OpRef::fail();
1666 return OpRef::res(Results.top());
1669 OpRef HvxSelector::perfect(ShuffleMask SM, OpRef Va, ResultStack &Results) {
1669 OpRef HvxSelector::perfect(ShuffleMask SM, OpRef Va, ResultStack &Results) {
1688 return OpRef::fail();
1790 return OpRef::fail();
1794 return OpRef::fail();
1893 return OpRef::res(Results.top());
1909 OpRef Arg = !Extend ? Va
1910 : concat(Va, OpRef::undef(SingleTy), Results);
1929 Res.Ops = { OpRef::hi(Arg), OpRef::lo(Arg), OpRef::res(-1) };
1929 Res.Ops = { OpRef::hi(Arg), OpRef::lo(Arg), OpRef::res(-1) };
1929 Res.Ops = { OpRef::hi(Arg), OpRef::lo(Arg), OpRef::res(-1) };
1931 Arg = OpRef::res(Results.top());
1934 return !Extend ? Arg : OpRef::lo(Arg);
1937 OpRef HvxSelector::butterfly(ShuffleMask SM, OpRef Va, ResultStack &Results) {
1937 OpRef HvxSelector::butterfly(ShuffleMask SM, OpRef Va, ResultStack &Results) {
1956 return OpRef::fail();
1964 return OpRef::res(Results.top());
1972 return OpRef::res(Results.top());
1982 {OpRef::res(-1), OpRef(CtlR)});
1983 return OpRef::res(Results.top());
1986 return OpRef::fail();
2052 OpRef Va = OpRef::res(Results.top()-1);
2052 OpRef Va = OpRef::res(Results.top()-1);
2053 OpRef Vb = OpRef::res(Results.top());
2053 OpRef Vb = OpRef::res(Results.top());
2055 OpRef Res = !HavePairs ? shuffs2(ShuffleMask(Mask), Va, Vb, Results)
usr/include/c++/7.4.0/bits/alloc_traits.h 387 using allocator_type = allocator<_Tp>;
389 using value_type = _Tp;
392 using pointer = _Tp*;
395 using const_pointer = const _Tp*;
usr/include/c++/7.4.0/bits/allocator.h 108 class allocator: public __allocator_base<_Tp>
113 typedef _Tp* pointer;
114 typedef const _Tp* const_pointer;
115 typedef _Tp& reference;
116 typedef const _Tp& const_reference;
117 typedef _Tp value_type;
137 allocator(const allocator<_Tp1>&) throw() { }
158 operator!=(const allocator<_T1>&, const allocator<_T2>&)
158 operator!=(const allocator<_T1>&, const allocator<_T2>&)
164 operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
164 operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
usr/include/c++/7.4.0/bits/move.h 46 inline _GLIBCXX_CONSTEXPR _Tp*
47 __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
72 constexpr _Tp&&
83 constexpr _Tp&&
usr/include/c++/7.4.0/bits/stl_construct.h 74 _Construct(_T1* __p, _Args&&... __args)
74 _Construct(_T1* __p, _Args&&... __args)
75 { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
204 allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h 181 typedef _Tp value_type;
183 typedef _Tp* pointer;
184 typedef _Tp& reference;
192 typedef _Tp value_type;
194 typedef const _Tp* pointer;
195 typedef const _Tp& reference;
usr/include/c++/7.4.0/bits/stl_uninitialized.h 288 _ForwardIterator __result, allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_vector.h 77 rebind<_Tp>::other _Tp_alloc_type;
216 class vector : protected _Vector_base<_Tp, _Alloc>
227 typedef _Vector_base<_Tp, _Alloc> _Base;
232 typedef _Tp value_type;
919 _Tp*
923 const _Tp*
usr/include/c++/7.4.0/ext/alloc_traits.h 117 { typedef typename _Base_type::template rebind_alloc<_Tp> other; };
usr/include/c++/7.4.0/ext/new_allocator.h 63 typedef _Tp* pointer;
64 typedef const _Tp* const_pointer;
65 typedef _Tp& reference;
66 typedef const _Tp& const_reference;
67 typedef _Tp value_type;
84 new_allocator(const new_allocator<_Tp1>&) _GLIBCXX_USE_NOEXCEPT { }
111 return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
130 { return size_t(-1) / sizeof(_Tp); }
160 operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
160 operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
usr/include/c++/7.4.0/initializer_list 50 typedef _E value_type;
51 typedef const _E& reference;
52 typedef const _E& const_reference;
54 typedef const _E* iterator;
55 typedef const _E* const_iterator;
usr/include/c++/7.4.0/type_traits 215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type
326 : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
354 : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
381 : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
567 : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
581 : public __or_<is_lvalue_reference<_Tp>,
582 is_rvalue_reference<_Tp>>::type
588 : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
588 : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
631 : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
798 typedef decltype(__test<_Tp>(0)) type;
811 remove_all_extents<_Tp>::type>::type
825 : public __is_destructible_safe<_Tp>::type
1554 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1633 { typedef _Tp type; };
1659 { typedef _Tp&& type; };
1955 { typedef _Tp type; };