F16 and F32
This commit is contained in:
parent
1544e92391
commit
07910a81c3
6 changed files with 898 additions and 7 deletions
|
|
@ -78,7 +78,7 @@ namespace Crafter {
|
|||
v = _mm512_loadu_ph(vB);
|
||||
}
|
||||
}
|
||||
constexpr void Store(const _Float16* vB) const {
|
||||
constexpr void Store(_Float16* vB) const {
|
||||
if constexpr(std::is_same_v<VectorType, __m128h>) {
|
||||
_mm_storeu_ph(vB, v);
|
||||
} else if constexpr(std::is_same_v<VectorType, __m256h>) {
|
||||
|
|
@ -91,7 +91,7 @@ namespace Crafter {
|
|||
template <std::uint32_t VLen, std::uint32_t VAlign>
|
||||
constexpr Vector<_Float16, VLen, VAlign> Store() const {
|
||||
Vector<_Float16, VLen, VAlign> returnVec;
|
||||
Store(&returnVec);
|
||||
Store(returnVec.v);
|
||||
return returnVec;
|
||||
}
|
||||
|
||||
|
|
@ -1501,14 +1501,14 @@ namespace Crafter {
|
|||
constexpr static VectorF16<Len, Packing, Repeats> Rotate(VectorF16<3, 2, Repeats> v, VectorF16<4, 2, Repeats> q) requires(Len == 3 && Packing == 2) {
|
||||
VectorF16<3, 2, Repeats> qv(q.v);
|
||||
VectorF16<Len, Packing, Repeats> t = Cross(qv, v) * _Float16(2);
|
||||
return v + t * q.template Shuffle<3,3,3,3,3,3,3,3>(); + Cross(qv, t);
|
||||
return v + t * q.template Shuffle<3,3,3,3,7,7,7,7>(); + Cross(qv, t);
|
||||
}
|
||||
|
||||
constexpr static VectorF16<4, 2, Repeats> RotatePivot(VectorF16<3, 2, Repeats> v, VectorF16<4, 2, Repeats> q, VectorF16<3, 2, Repeats> pivot) requires(Len == 3 && Packing == 2) {
|
||||
VectorF16<Len, Packing, Repeats> translated = v - pivot;
|
||||
VectorF16<3, 2, Repeats> qv(q.v);
|
||||
VectorF16<Len, Packing, Repeats> t = Cross(qv, translated) * _Float16(2);
|
||||
VectorF16<Len, Packing, Repeats> rotated = translated + t * q.template Shuffle<3,3,3,3,3,3,3,3>() + Cross(qv, t);
|
||||
VectorF16<Len, Packing, Repeats> rotated = translated + t * q.template Shuffle<3,3,3,3,7,7,7,7>() + Cross(qv, t);
|
||||
return rotated + pivot;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue