This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/70882] New: vectorized sincos trashes the stack


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70882

            Bug ID: 70882
           Summary: vectorized sincos trashes the stack
           Product: gcc
           Version: 5.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: blaffablaffa at gmail dot com
  Target Milestone: ---

Created attachment 38381
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38381&action=edit
testcase

The double4 version of the vectorized sincos() in libmvec (glibc 2.22) causes
the stack to be corrupted, leading to assorted bugs such as crash, backtrace
corruption in gdb, etc. I am reporting a bug here because since it's the only
vectorized math function that uses pointers, so it might be an ABI problem. On
my CPU (ivybridge) I can only test the double4 version, not the wider ones.
Attached testcase, compile with

g++ -std=c++11 -O1 -fopenmp -ffast-math -march=ivybridge -mtune=ivybridge -o
double_sincos double_sincos.cpp

(interestingly, the vectorized call is not emitted with a c++ version lower
than 2011).

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]