This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc 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 math/20024] New: vectorized sincos trashes the stack


https://sourceware.org/bugzilla/show_bug.cgi?id=20024

            Bug ID: 20024
           Summary: vectorized sincos trashes the stack
           Product: glibc
           Version: 2.22
            Status: NEW
          Severity: normal
          Priority: P2
         Component: math
          Assignee: unassigned at sourceware dot org
          Reporter: blaffablaffa at gmail dot com
  Target Milestone: ---

Created attachment 9224
  --> https://sourceware.org/bugzilla/attachment.cgi?id=9224&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 have also reported this bug on the gcc bugtracker
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70882) because being the only
math function that takes pointer, 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).

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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