[llvm-commits] PATCH: implement vector zext when vector types are legal (neon)
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