Revert "fix scalar pselect"
diff --git a/Eigen/src/Core/GenericPacketMath.h b/Eigen/src/Core/GenericPacketMath.h index 8bf8f90..e1347b9 100644 --- a/Eigen/src/Core/GenericPacketMath.h +++ b/Eigen/src/Core/GenericPacketMath.h
@@ -580,13 +580,21 @@ } // In the general case, use bitwise select. -template <typename Packet> +template <typename Packet, typename EnableIf = void> struct pselect_impl { static EIGEN_DEVICE_FUNC inline Packet run(const Packet& mask, const Packet& a, const Packet& b) { return por(pand(a, mask), pandnot(b, mask)); } }; +// For scalars, use ternary select. +template <typename Packet> +struct pselect_impl<Packet, std::enable_if_t<is_scalar<Packet>::value>> { + static EIGEN_DEVICE_FUNC inline Packet run(const Packet& mask, const Packet& a, const Packet& b) { + return numext::equal_strict(mask, Packet(0)) ? b : a; + } +}; + /** \internal \returns \a or \b for each field in packet according to \mask */ template <typename Packet> EIGEN_DEVICE_FUNC inline Packet pselect(const Packet& mask, const Packet& a, const Packet& b) {