[Bug math/20495] New: SIMD sincosf implementation lacks VEX encoded version

kungfujesus06 at gmail dot com sourceware-bugzilla@sourceware.org
Fri Aug 19 17:55:00 GMT 2016


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

            Bug ID: 20495
           Summary: SIMD sincosf implementation lacks VEX encoded version
           Product: glibc
           Version: 2.24
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: math
          Assignee: unassigned at sourceware dot org
          Reporter: kungfujesus06 at gmail dot com
  Target Milestone: ---

I noticed fairly recently that after a lot of AVX vectorized code I was
utilizing the scalar sincosf in libm for the remainder.  I found it
particularly odd that this code was being outperformed by SSE4 variations of
the code, and later traced the issue to be the fact that sincosf is utilizing
legacy SSE instructions in what was otherwise AVX accelerated code.  This was
causing a sizable transition penalty between AVX and SSE, as the code calling
the sincosf function was utilizing ymm* (AVX) registers.  I added a hardcoded
vzeroupper() to fix this transition penalty, but having a VEX coded version to
jump to might be of benefit for some workloads.

Arguably I shouldn't be utilizing the scalar instructions at all for the
remainder, and that's probably one other possible solution, but I thought I'd
file this all the same.

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


More information about the Glibc-bugs mailing list