Always vectorize abs2() for non-complex types. For several packet types, `abs2` was not vectorized even if it only requires `pmul`. Get rid of the confusing and redundant `HasAbs2` enum and instead check `HasMul` in addition to making sure the scalar type is not complex. See merge request libeigen/eigen!2048
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
For more information go to http://eigen.tuxfamily.org/ or https://libeigen.gitlab.io/docs/.
For pull request, bug reports, and feature requests, go to https://gitlab.com/libeigen/eigen.