https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80385
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to work| |4.8.5 Summary|Internal Segmentation Fault |[5/6/7 Regression] Segfault | |in | |commutative_operand_precede | |nce() rtlanal.c:3373 --- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- typedef float __m128 __attribute__((__vector_size__(16))); __m128 _mm_sub_ps___B; struct A { __m128 data; A(); A(__m128 p1) : data(p1) {} }; A operator+(A, A); A operator-(A) { __m128 __trans_tmp_6 = -_mm_sub_ps___B; return __trans_tmp_6; } A copysign(A p1) { __m128 __A = p1.data, __B; return __builtin_ia32_andnps(__A, __B); } struct B { A n[1]; }; void FustrumVisible(B p1, int) { A __trans_tmp_9 = copysign(p1.n[0]), __trans_tmp_4 = __trans_tmp_9 + __trans_tmp_4; } void CameraAABBIntersect() { B __trans_tmp_8; { B culling; A __trans_tmp_3; culling.n[0] = -__trans_tmp_3; __trans_tmp_8 = culling; } B culling = __trans_tmp_8; FustrumVisible(culling, {}); }