There's an existing optimization for x != C, but somehow it was missing a special case for 0.
While I'm here, also cleaned up the code/comments a bit: the second value produced by the MERGE_VALUES was actually dead, since a CMOV only produces one result.