isSafeToSpeculativelyExecute() is not enough, because it's result
it taken into account only when it's positive and we need to forbid
the case where result is negative.
This doesn't make sense to me, can you please elaborate?
isSafeToSpeculativelyExecute() returns false, but code doesn't care and returns true from isGuaranteedToExecute() without this additional check.