[Bug rtl-optimization/80385] [5/6/7 Regression] Segfault in commutative_operand_precedence() rtlanal.c:3373

2017-04-11 Thread jakub at gcc dot gnu.org
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

2017-04-11 Thread jakub at gcc dot gnu.org
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

2017-04-11 Thread jakub at gcc dot gnu.org
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

2017-04-11 Thread rguenth at gcc dot gnu.org
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

2017-04-10 Thread trippels at gcc dot gnu.org
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, {});
}