This revision starts an Arm-specific ArmNeon dialect discussed in the discourse RFC thread.
This (and other parts) is directly taken from the AVX512 pass. For most part, that is okay with me, but this actually lowering part in AVX512 reflected in these lines of code did not compose very well with the regular vector dialect lowering (which has grown over time with e.g. contract lowering and friends).
Perhaps we can make this part a bit more forward looking on how we want this to run.
AVX -> Neon ;-)
As discussed in the syn meeting, let's not make this a full pass (and also remove the AVX512 pass), but simply keep this as "populate" methods that are pulled in on demand by the regular vector dialect pass. That will avoid copy-and-pasting the logic and avoid inconsistencies over time. The tests can have their own driver, they don't need a full pass either.
As agreed, I will do the AVX512 pass removal in the meanwhile to set the right example.
|9 ↗||(On Diff #309897)|
I see a lint warning on this line. Not sure if it is useful?
yes, this is a good point, we should only pull in what is needed
|2 ↗||(On Diff #309897)|
this line is way too long now