From fc87e2cbaa65e7e93a2c695ce5a9dc048a64a985 Mon Sep 17 00:00:00 2001 From: Rasmus Munk Larsen Date: Thu, 10 Jun 2021 19:18:50 -0700 Subject: Use bit_cast to create -0.0 for floating point types to avoid compiler optimization changing sign with --ffast-math enabled. --- Eigen/src/LU/arch/InverseSize4.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'Eigen/src/LU/arch/InverseSize4.h') diff --git a/Eigen/src/LU/arch/InverseSize4.h b/Eigen/src/LU/arch/InverseSize4.h index ee5548aed..106224bbc 100644 --- a/Eigen/src/LU/arch/InverseSize4.h +++ b/Eigen/src/LU/arch/InverseSize4.h @@ -143,7 +143,7 @@ struct compute_inverse_size4(0x80000000u), numext::bit_cast(0x80000000u), 0.0f}; const Packet4f p4f_sign_PNNP = pset(sign_mask); rd = pxor(rd, p4f_sign_PNNP); iA = pmul(iA, rd); @@ -326,8 +326,8 @@ struct compute_inverse_size4(0x8000000000000000ull)}; + const double sign_mask2[2] = {numext::bit_cast(0x8000000000000000ull), 0.0}; const Packet2d sign_PN = pset(sign_mask1); const Packet2d sign_NP = pset(sign_mask2); d1 = pxor(rd, sign_PN); -- cgit v1.2.3