This patch adds a function to detect guards expressed in explicit form:
%wc = call i1 @llvm.experimental.widenable.condition() %guard_cond = and i1, %some_cond, %wc br i1 %guard_cond, label %guarded, label %deopt deopt: <maybe some non-side-effecting instructions> deoptimize()
This form can be used as alternative to implicit control flow guard
representation expressed by experimental_guard intrinsic.