You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
0000000000000000 <Inspiration::foo24(Inspiration::FloatVectorBase<simdpp::arch_neonfltsp::float64<4u, void> >)>:
0: 6f00e402 movi v2.2d, #0x0
4: d10383ff sub sp, sp, #0xe0
8: 910383ff add sp, sp, #0xe0
c: 4e221c00 and v0.16b, v0.16b, v2.16b
10: 4e221c21 and v1.16b, v1.16b, v2.16b
14: d65f03c0 ret
The problem seems to trace back to the way bit_and() is being processed in the implementation of _i_sign(float64):
return bit_and(a, 0x8000000000000000);
The 0x8000000'00000000 constant gets bit-converted to the floating point constant -0.0. Because of -ffast-math -0.0 and 0.0 are equivalent, so this winds up masking with 0 instead.
The text was updated successfully, but these errors were encountered:
auto foo24(float64x2 a) { return sign(a); }
generates:
The problem seems to trace back to the way bit_and() is being processed in the implementation of _i_sign(float64):
The 0x8000000'00000000 constant gets bit-converted to the floating point constant -0.0. Because of -ffast-math -0.0 and 0.0 are equivalent, so this winds up masking with 0 instead.
The text was updated successfully, but these errors were encountered: