[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