[PATCH] Generate more normal LLVM IR for ARM NEON intrinsics

Tim Northover t.p.northover at gmail.com
Tue Aug 27 10:45:42 PDT 2013


> The attached patches change Clang's CodeGen for ARM NEON intrinsics to
> use more normal LLVM operations (and modular intrinsics where
> necessary) instead of a single special-purpose one.

Bob Wilson's pointed out that the vmull intrinsic was added
intentionally because when it was split up the extensions were hoisted
out of loops and it actually led to worse code. I can't see that
anything's changed much since then, so I think it would be best to
drop the third patch.

But I think the other two are still valid. The vqdmull change brings
it into line with the (current) vmull generation, which doesn't appear
to be causing problems, and I *think* splitting would actually be
beneficial if it could be done for the vaddhn patch.

Cheers.

Tim.



More information about the cfe-commits mailing list