[llvm-commits] PATCH: implement vector zext when vector types are legal (neon)

Bob Wilson bob.wilson at apple.com
Wed Aug 18 08:48:57 PDT 2010

On Aug 18, 2010, at 7:25 AM, Anton Korobeynikov wrote:

>> It's still pretty awful.  The ANDs to mask off the high bits are unnecessary, and all those extra VMOVs should be avoided.
> Probably the best way is to splat zero into reg and after this emit a VZIP

Nope.  VMOVL is better.  I realized last night that you can do it in one instruction.

I'm looking now at all the NEON intrinsics for basic operations that extend one or both operands, and I can't figure out why they were ever needed.  I'm starting to think that I just totally screwed that up.  We should be able to avoid the intrinsics and represent those operations with zero_extend and sign_extend patterns.  That would also avoid the need for the DAG combine pattern for vmlal.

I'll give that a try.  We'll either end up with a better solution or I'll remember why I did it that way in the first place.

More information about the llvm-commits mailing list