Dear Tim, Chad, Ana, Jiangning and Hao,
This is my first patch to the LLVM project.
We are seeing missed opportunities to generate widened mul/mla/mls in AArch64
ARM had an implementation that was ported to AArch64.
Thanks for working on this. I think the code is mostly OK (which is a relief, otherwise ARM would already be broken). I've got a few small suggestions though:
Function names should start with a lower case letter (this isn't the only example).
It's not called VMULL on AArch64.
Could you comment on which CPUs this is known to be beneficial for.
CHECK-LABEL. It's also a good idea to include the label's ':' in the check line, otherwise you can match weird directives at the end of the function like
.size umull_extvec_v2i32_v2i64, .Ltmp1-umull_extvec_v2i32_v2i64
Please be consistent with your CHECK directives. Specifically, either do or don't include a space between the ; and the CHECK for each test. Personally, I prefer a space and I believe this is the general style within the community.