[Bug tree-optimization/92768] [8/9/10 Regression] Maybe a wrong code for vector constants
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Dec 3 13:07:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92768
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |needs-bisection
Status|UNCONFIRMED |NEW
Target Milestone|--- |8.4
Summary|[10 Regression] Maybe a |[8/9/10 Regression] Maybe a
|wrong code for vector |wrong code for vector
|constants |constants
Ever confirmed|0 |1
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Testcase already failing with GCC 8 (but not GCC 7 appearantly):
#include <xmmintrin.h>
typedef int v4si __attribute__((vector_size(16)));
typedef float v4sf __attribute__((vector_size(16)));
__m128
graphene_simd4x4f_inverse(__m128 r1_sum)
{
v4si temi = (v4si) {0x00000000, 0x80000000, 0x00000000, 0x80000000};
v4sf temf = (v4sf) temi;
return (__m128) _mm_xor_ps((r1_sum), temf);
}
int main()
{
__m128 a = { -1.0f, -1.0f, -1.0f, -1.0f };
if (graphene_simd4x4f_inverse (a)[1] != 1.0)
__builtin_abort ();
return 0;
}
somehow we are "normalizing" FP numbers in constant folding, losing the signed
zeros. That worked in GCC 7.
Guess we can bisect that.
More information about the Gcc-bugs
mailing list