Hi,
As the title says, I don't believe there's a point in inserting Truncates before ZExt's that have no-effect, i.e. ZExts where the argument's type width is the same as the result's type width.
This is a prerequisite for the test in D111237 to pass.
The comment is kind of misleading. According to LangRef, the size of the input operand of zext must be less than the size of the output operand. It is also asserted in the constructor of the operation (see CastInst::castIsValid).