During lowering of memcmp/bcmp, the check for a size of 0 is done in 2 different ways.
In rare cases this can lead to a crash in SystemZSelectionDAGInfo::EmitTargetCodeForMemcmp().
The root cause is that SelectionDAGBuilder::visitMemCmpBCmpCall() checks for a constant int value which is not yet evaluated. When the value is turned into a SDValue, then the evaluation is done and results in a ConstantSDNode. EmitTargetCodeForMemcmp() expect the special case of 0 length to be handled, which results in an assertion.
The fix is to turn the value into a SDValue, so that both functions use the same check.