Optimize ulong/double Vector
conversion on xarch with AVX512VL instructions.
#10
kote01-coder
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
With some of the new AVX512VL instructions, we can optimize
Vector
uint32/uint64 to/fromVector
single/double conversions within the JIT.These would be
Vector128
/Vector256
ConvertToInt64
,ConvertToInt32
etc. optimizations.vcvtpd2qq
– faster packed double to int64 conversions (also vcvttpd2qq)vcvtpd2udq
– faster packed double to uint32 conversions (also vcvttpd2udq)vcvtpd2uqq
– faster packed double to uint64 conversions (also vcvttpd2uqq)vcvtps2qq
– faster packed single to int64 conversions (also vcvttps2qq)vcvtps2udq
– faster packed single to uint32 conversions (also vcvttps2udq)vcvtps2uqq
– faster packed single to uint64 conversions (also vcvttps2uqq)These would be
Vector128
/Vector256
ConvertToDouble
andConvertToSingle
optimizations.vcvtqq2pd
– faster packed int64 to double conversionsvcvtqq2ps
– faster packed int64 to single conversionsvcvtudq2pd
– faster packed uint32 to double conversionsvcvtudq2ps
– faster packed uint32 to single conversionsvcvtuqq2pd
– faster packed uint64 to double conversionsvcvtuqq2ps
– faster packed uint64 to single conversionsAs it stands, I believe many of these conversions are done with with a software fallback or a sequence of more complicated instructions, whereas with AVX512VL we can use a single instruction to perform the conversions.
Beta Was this translation helpful? Give feedback.
All reactions