[GuardWidening] Make sure widened condition operands are available at insertion point
This fixes a possible issue when we could hoist an instruction up to a widenable condition intrinsic call without making sure its operands are available at hoisiting point. Recently insertion point finding algorithm changed a bit, so this availability check became necessary. Verifier would crash after we handled the following special case: L >u C0 && L >u C1 -> L >u max(C0, C1), Previously we would insert the new condition right before the widenable condition branch where all L operands were available. Now we may choose the widenable condition intrinsic call as insertion point and it may happen so that the L operands are computed after the call, so we have to make sure that L operands are available at the point we want to insert it. Differential Revision: https://reviews.llvm.org/D144944
Loading
Please sign in to comment