From 5aebbe9098f53f01c99eed67b52725397e955280 Mon Sep 17 00:00:00 2001 From: Rasmus Munk Larsen Date: Tue, 29 Jun 2021 23:26:15 +0000 Subject: Get rid of redundant `pabs` instruction in complex square root. --- Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h b/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h index bb4f719a8..c9fbaf68b 100644 --- a/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +++ b/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h @@ -802,9 +802,8 @@ Packet psqrt_complex(const Packet& a) { // l0 = (min0 == 0 ? max0 : max0 * sqrt(1 + (min0/max0)**2)), // where max0 = max(|x0|, |y0|), min0 = min(|x0|, |y0|), and similarly for l1. - Packet a_flip = pcplxflip(a); RealPacket a_abs = pabs(a.v); // [|x0|, |y0|, |x1|, |y1|] - RealPacket a_abs_flip = pabs(a_flip.v); // [|y0|, |x0|, |y1|, |x1|] + RealPacket a_abs_flip = pcplxflip(Packet(a_abs)).v; // [|y0|, |x0|, |y1|, |x1|] RealPacket a_max = pmax(a_abs, a_abs_flip); RealPacket a_min = pmin(a_abs, a_abs_flip); RealPacket a_min_zero_mask = pcmp_eq(a_min, pzero(a_min)); -- cgit v1.2.3