The [Vector Dialect]((https://mlir.llvm.org/docs/Dialects/Vector/)) implements a retargetable n-D vector abstraction.
One of the layer currently missing in OSS atm is the Hardware Vector Ops (HWV) level.
This revision introduces a AVX512-specific dialect for the purpose of implementing portions of XNNPack in MLIR and benchmarking them.
This lives under Dialect/Targets/AVX512 and will target useful intrinsics to implement XNNPack.
The first such function is xnn_math_f32_exp__avx512f_p5_scalef.
At the moment, MLIR relies too much on LLVM’s peephole optimizer to do a good job from small insertelement/extractelement/shufflevector.
Some intrinsics defined and used in the LLVMDialect but these are all “portable” intrinsics.
This revision starts defining layering the layering to attack the right instructions in avx512 directly.
Experience with avx512 is also expected to be useful for a future ARM SVE dialect.
clang-format: please reformat the code