mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-05-02 00:34:14 +08:00
Enable NEON pcmp, plset, and complex psqrt
This commit is contained in:
parent
dbf7ae6f9b
commit
311cc0f9cc
@ -66,6 +66,7 @@ template<> struct packet_traits<std::complex<float> > : default_packet_traits
|
|||||||
HasMul = 1,
|
HasMul = 1,
|
||||||
HasDiv = 1,
|
HasDiv = 1,
|
||||||
HasNegate = 1,
|
HasNegate = 1,
|
||||||
|
HasSqrt = 1,
|
||||||
HasAbs = 0,
|
HasAbs = 0,
|
||||||
HasAbs2 = 0,
|
HasAbs2 = 0,
|
||||||
HasMin = 0,
|
HasMin = 0,
|
||||||
@ -406,6 +407,7 @@ template<> struct packet_traits<std::complex<double> > : default_packet_traits
|
|||||||
HasMul = 1,
|
HasMul = 1,
|
||||||
HasDiv = 1,
|
HasDiv = 1,
|
||||||
HasNegate = 1,
|
HasNegate = 1,
|
||||||
|
HasSqrt = 1,
|
||||||
HasAbs = 0,
|
HasAbs = 0,
|
||||||
HasAbs2 = 0,
|
HasAbs2 = 0,
|
||||||
HasMin = 0,
|
HasMin = 0,
|
||||||
|
@ -216,7 +216,7 @@ struct gebp_traits <half,half,false,false,Architecture::NEON>
|
|||||||
EIGEN_STRONG_INLINE void updateRhs(const RhsScalar*, RhsPacketx4&) const
|
EIGEN_STRONG_INLINE void updateRhs(const RhsScalar*, RhsPacketx4&) const
|
||||||
{}
|
{}
|
||||||
|
|
||||||
EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, RhsPacket& dest) const
|
EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar*, RhsPacket&) const
|
||||||
{
|
{
|
||||||
// If LHS is a Packet8h, we cannot correctly mimic a ploadquad of the RHS
|
// If LHS is a Packet8h, we cannot correctly mimic a ploadquad of the RHS
|
||||||
// using a single scalar value.
|
// using a single scalar value.
|
||||||
|
@ -176,6 +176,7 @@ struct packet_traits<float> : default_packet_traits
|
|||||||
size = 4,
|
size = 4,
|
||||||
HasHalfPacket = 1,
|
HasHalfPacket = 1,
|
||||||
|
|
||||||
|
HasCmp = 1,
|
||||||
HasAdd = 1,
|
HasAdd = 1,
|
||||||
HasSub = 1,
|
HasSub = 1,
|
||||||
HasShift = 1,
|
HasShift = 1,
|
||||||
@ -188,7 +189,7 @@ struct packet_traits<float> : default_packet_traits
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0,
|
HasBlend = 0,
|
||||||
|
|
||||||
HasDiv = 1,
|
HasDiv = 1,
|
||||||
@ -237,7 +238,7 @@ struct packet_traits<int8_t> : default_packet_traits
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0
|
HasBlend = 0
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -267,7 +268,7 @@ struct packet_traits<uint8_t> : default_packet_traits
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0,
|
HasBlend = 0,
|
||||||
|
|
||||||
HasSqrt = 1
|
HasSqrt = 1
|
||||||
@ -286,6 +287,7 @@ struct packet_traits<int16_t> : default_packet_traits
|
|||||||
size = 8,
|
size = 8,
|
||||||
HasHalfPacket = 1,
|
HasHalfPacket = 1,
|
||||||
|
|
||||||
|
HasCmp = 1,
|
||||||
HasAdd = 1,
|
HasAdd = 1,
|
||||||
HasSub = 1,
|
HasSub = 1,
|
||||||
HasShift = 1,
|
HasShift = 1,
|
||||||
@ -298,7 +300,7 @@ struct packet_traits<int16_t> : default_packet_traits
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0
|
HasBlend = 0
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -315,6 +317,7 @@ struct packet_traits<uint16_t> : default_packet_traits
|
|||||||
size = 8,
|
size = 8,
|
||||||
HasHalfPacket = 1,
|
HasHalfPacket = 1,
|
||||||
|
|
||||||
|
HasCmp = 1,
|
||||||
HasAdd = 1,
|
HasAdd = 1,
|
||||||
HasSub = 1,
|
HasSub = 1,
|
||||||
HasShift = 1,
|
HasShift = 1,
|
||||||
@ -327,7 +330,7 @@ struct packet_traits<uint16_t> : default_packet_traits
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0,
|
HasBlend = 0,
|
||||||
HasSqrt = 1
|
HasSqrt = 1
|
||||||
};
|
};
|
||||||
@ -345,6 +348,7 @@ struct packet_traits<int32_t> : default_packet_traits
|
|||||||
size = 4,
|
size = 4,
|
||||||
HasHalfPacket = 1,
|
HasHalfPacket = 1,
|
||||||
|
|
||||||
|
HasCmp = 1,
|
||||||
HasAdd = 1,
|
HasAdd = 1,
|
||||||
HasSub = 1,
|
HasSub = 1,
|
||||||
HasShift = 1,
|
HasShift = 1,
|
||||||
@ -357,7 +361,7 @@ struct packet_traits<int32_t> : default_packet_traits
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0
|
HasBlend = 0
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -374,6 +378,7 @@ struct packet_traits<uint32_t> : default_packet_traits
|
|||||||
size = 4,
|
size = 4,
|
||||||
HasHalfPacket = 1,
|
HasHalfPacket = 1,
|
||||||
|
|
||||||
|
HasCmp = 1,
|
||||||
HasAdd = 1,
|
HasAdd = 1,
|
||||||
HasSub = 1,
|
HasSub = 1,
|
||||||
HasShift = 1,
|
HasShift = 1,
|
||||||
@ -386,7 +391,7 @@ struct packet_traits<uint32_t> : default_packet_traits
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0,
|
HasBlend = 0,
|
||||||
|
|
||||||
HasSqrt = 1
|
HasSqrt = 1
|
||||||
@ -418,7 +423,7 @@ struct packet_traits<int64_t> : default_packet_traits
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0
|
HasBlend = 0
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -448,7 +453,7 @@ struct packet_traits<uint64_t> : default_packet_traits
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0
|
HasBlend = 0
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -3406,7 +3411,7 @@ template<> struct packet_traits<bfloat16> : default_packet_traits
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0,
|
HasBlend = 0,
|
||||||
HasDiv = 1,
|
HasDiv = 1,
|
||||||
HasFloor = 1,
|
HasFloor = 1,
|
||||||
@ -3763,7 +3768,7 @@ template<> struct packet_traits<double> : default_packet_traits
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0,
|
HasBlend = 0,
|
||||||
|
|
||||||
HasDiv = 1,
|
HasDiv = 1,
|
||||||
@ -4007,7 +4012,7 @@ struct packet_traits<Eigen::half> : default_packet_traits {
|
|||||||
HasMin = 1,
|
HasMin = 1,
|
||||||
HasMax = 1,
|
HasMax = 1,
|
||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 0,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0,
|
HasBlend = 0,
|
||||||
HasInsert = 1,
|
HasInsert = 1,
|
||||||
HasReduxp = 1,
|
HasReduxp = 1,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user