diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-03-29 01:56:09 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-03-29 01:56:09 +0000 |
commit | e2086e740f559ad5fb2124209a4f7f640f1184da (patch) | |
tree | 3abe2ce8f8d1f64b9dec8c2d52d41dff9e3ae916 /llvm/lib/CodeGen/SplitKit.cpp | |
parent | 03325c4be988ccfbf1cad214b3895627b8d6c910 (diff) | |
download | bcm5719-llvm-e2086e740f559ad5fb2124209a4f7f640f1184da.tar.gz bcm5719-llvm-e2086e740f559ad5fb2124209a4f7f640f1184da.zip |
Optimizing (zext A + zext B) * C, to (VMULL A, C) + (VMULL B, C) during
isel lowering to fold the zero-extend's and take advantage of no-stall
back to back vmul + vmla:
vmull q0, d4, d6
vmlal q0, d5, d6
is faster than
vaddl q0, d4, d5
vmovl q1, d6
vmul q0, q0, q1
This allows us to vmull + vmlal for:
f = vmull_u8( vget_high_u8(s), c);
f = vmlal_u8(f, vget_low_u8(s), c);
rdar://9197392
llvm-svn: 128444
Diffstat (limited to 'llvm/lib/CodeGen/SplitKit.cpp')
0 files changed, 0 insertions, 0 deletions