Since the early days of hardware-accelerated 3D graphics, GPUs could perform a small set of blending functions while drawing polygons: Add, Subtract, Min, Max, etc. with selectable source and destination factors.
What I find strange is that blending has not evolved beyond primitive functions...