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.
Details
Details
Diff Detail
Diff Detail
Event Timeline
llvm/test/CodeGen/ARM/addsubo-legalization.ll | ||
---|---|---|
88 | Nit, just curious why this one is unaffected. Looking at the changes below, I was perhaps expecting similar changes here. |
llvm/test/CodeGen/ARM/addsubo-legalization.ll | ||
---|---|---|
88 | Good question. It looks like the default expansion for SADD/SUBO can go via a SADD/SUBSAT, but the UADD/SUBO prefers to go via ADD/SUBCARRY. We could add expansion for UADDO to UADDSAT, but I think it's best not to do that here. |
llvm/test/CodeGen/ARM/addsubo-legalization.ll | ||
---|---|---|
88 | Cheers, agreed, LGTM |
Comment Actions
I was about to commit this but as its removing old intrinsics it deserves some update code. I've added that now along with a test.
Nit, just curious why this one is unaffected. Looking at the changes below, I was perhaps expecting similar changes here.