[Bug rtl-optimization/80385] [5/6/7 Regression] Segfault in commutative_operand_precedence() rtlanal.c:3373
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80385 --- Comment #5 from Jakub Jelinek --- Author: jakub Date: Tue Apr 11 17:19:56 2017 New Revision: 246850 URL: https://gcc.gnu.org/viewcvs?rev=246850=gcc=rev Log: PR rtl-optimization/80385 * simplify-rtx.c (simplify_unary_operation_1): Don't transform (not (neg X)) into (plus X -1) for complex or non-integral modes. * g++.dg/opt/pr80385.C: New test. Added: trunk/gcc/testsuite/g++.dg/opt/pr80385.C Modified: trunk/gcc/ChangeLog trunk/gcc/simplify-rtx.c trunk/gcc/testsuite/ChangeLog
[Bug rtl-optimization/80385] [5/6/7 Regression] Segfault in commutative_operand_precedence() rtlanal.c:3373
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80385 --- Comment #4 from Jakub Jelinek --- Created attachment 41173 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41173=edit gcc7-pr80385.patch Untested fix.
[Bug rtl-optimization/80385] [5/6/7 Regression] Segfault in commutative_operand_precedence() rtlanal.c:3373
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80385 Jakub Jelinek changed: What|Removed |Added Status|NEW |ASSIGNED CC||jakub at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
[Bug rtl-optimization/80385] [5/6/7 Regression] Segfault in commutative_operand_precedence() rtlanal.c:3373
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80385 Richard Biener changed: What|Removed |Added Keywords||ice-on-valid-code Target||x86_64-*-* Priority|P3 |P2 Target Milestone|--- |5.5
[Bug rtl-optimization/80385] [5/6/7 Regression] Segfault in commutative_operand_precedence() rtlanal.c:3373
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80385 Markus Trippelsdorf 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 --- 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, {}); }