36 explicit Vc_INTRINSIC Vector(
const EntryType *mem)
48 template <typename Flags, typename = enable_if<Traits::is_load_store_flag<Flags>::value>>
49 explicit Vc_INTRINSIC Vector(
const EntryType *mem, Flags flags)
56 (!std::is_integral<U>::value || !std::is_integral<EntryType>::value ||
57 sizeof(EntryType) >=
sizeof(U)) &&
58 std::is_arithmetic<U>::value &&Traits::is_load_store_flag<Flags>::value>>
59 explicit Vc_INTRINSIC Vector(
const U *x, Flags flags = Flags())
61 load<U, Flags>(x, flags);
72 Vc_INTRINSIC
void load(
const EntryType *mem)
86 template <
typename Flags>
87 Vc_INTRINSIC enable_if<Traits::is_load_store_flag<Flags>::value,
void>
88 load(
const EntryType *mem, Flags flags)
90 load<EntryType, Flags>(mem, flags);
93 template <
typename U,
typename Flags>
94 struct load_concept :
public std::enable_if<
95 (!std::is_integral<U>::value || !std::is_integral<EntryType>::value ||
96 sizeof(EntryType) >= sizeof(U)) &&
97 std::is_arithmetic<U>::value && Traits::is_load_store_flag<Flags>::value, void>
101 template <
typename U,
typename Flags = DefaultLoadTag>
102 Vc_INTRINSIC_L
typename load_concept<U, Flags>::type load(
const U *mem, Flags = Flags()) Vc_INTRINSIC_R;
UnalignedTag DefaultLoadTag
The default load tag type uses unaligned (non-streaming) loads.