<div dir="ltr">Hi,<div><br></div><div>The small patch attached is to fix a bug in bitcast optimization of DAGCombiner.</div><div><br></div><div>Originally, the code tries to optimize bitcast with build_vector input to be a scalar_to_vector, if only the bitcast and build_vector can meet some conditions. In particular, it thought "ThisVal.zext(SrcBitSize) == OpVal" is one of the requirements. This requirement means, if zero extension of a narrow element value is equal to the original wide element value, the optimization would be allowed. Unfortunately this is incorrect, because the semantic of scalar_to_vector is the top 1 to N-1 elements are undef rather than zero. So no matter we use zero_extension or sign_extension, this transformation would be always invalid. The patch attached disables this optimization.</div><div><br></div><div>Thanks,</div><div>-Jiangning</div></div>