On some targets, like SPARC, forming overflow ops is only profitable if
the math result is used: https://godbolt.org/z/DxSmdB
This patch adds a new MathUsed parameter to allow the targets
to make the decision and defaults to only allowing it
if the math result is used. That is the conservative choice.
This patch also updates AArch64ISelLowering and X86ISelLowering to all
forming overflow ops if the math result is not used. On those targets
using the overflow intrinsic for the overflow check only generates
better code.