[ARM] Replace arm_neon_vqadds with sadd_sat
authorDavid Green <david.green@arm.com>
Wed, 27 Nov 2019 11:01:27 +0000 (11:01 +0000)
committerDavid Green <david.green@arm.com>
Wed, 27 Nov 2019 13:32:29 +0000 (13:32 +0000)
commit9f15fcc2718f95f1dac9e6e57aa93d84e9709930
treeb68530b63955d00f6a60613b59397b9f3f7114ea
parent3c1912a733bae09585d88315a7eec39cd3318fde
[ARM] Replace arm_neon_vqadds with sadd_sat

This replaces the A32 NEON vqadds, vqaddu, vqsubs and vqsubu intrinsics
with the target independent sadd_sat, uadd_sat, ssub_sat and usub_sat.
This helps generate vqadds from standard IR nodes, which might be
produced from the vectoriser. The old variants are removed in the
process.

Differential Revision: https://reviews.llvm.org/D69350
14 files changed:
clang/lib/CodeGen/CGBuiltin.cpp
clang/test/CodeGen/arm-v8.1a-neon-intrinsics.c
clang/test/CodeGen/arm_neon_intrinsics.c
llvm/include/llvm/IR/IntrinsicsARM.td
llvm/lib/IR/AutoUpgrade.cpp
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/lib/Target/ARM/ARMInstrNEON.td
llvm/test/CodeGen/ARM/addsubo-legalization.ll
llvm/test/CodeGen/ARM/neon-v8.1a.ll
llvm/test/CodeGen/ARM/neon-vqaddsub-upgrade.ll [new file with mode: 0644]
llvm/test/CodeGen/ARM/vmul.ll
llvm/test/CodeGen/ARM/vqadd.ll
llvm/test/CodeGen/ARM/vqdmul.ll
llvm/test/CodeGen/ARM/vqsub.ll