This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug math/20495] New: SIMD sincosf implementation lacks VEX encoded version
- From: "kungfujesus06 at gmail dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Fri, 19 Aug 2016 17:55:29 +0000
- Subject: [Bug math/20495] New: SIMD sincosf implementation lacks VEX encoded version
- Auto-submitted: auto-generated
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.