Skip to content

Finish Avx512 specific lightup for Vector128/256/512<T> #85207

Closed
@tannergooding

Description

@tannergooding

With #80814, we achieved functional parity of Vector512<T> with Vector128<T> and Vector256<T>. However, there are some new instructions available in Avx512 capable hardware that will allow additional hardware acceleration opportunities for all three types.

This includes:

  • ConvertToDouble() - vcvtqq2pd & vcvtuqq2pd
  • ConvertToInt64() - vcvtpd2qq
  • ConvertToUInt32() - vcvtps2udq
  • ConvertToUInt64() - vcvtpd2uqq
  • ConditionalSelect() - vpternlog
  • Shuffle() - vpermi2*, vpermt2*, etc

We should also ensure that all APIs are accelerated as intrinsic, where applicable, in particular the following are still managed fallbacks (but accelerated):

  • Vector512.Dot()
  • Vector512.Sum()

There may be others as well, so a general audit to validate would be good.

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIavx512Related to the AVX-512 architecturein-prThere is an active PR which will close this issue when it is merged

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions