if is_pointer(pt):
// do pointer-based stuff
else:
raise error
If you train the branch predictor to expect a pointer, it will speculatively treat arbitrary values as pointers until it can determine that they are not. So you can pass in any value and get it treated like a pointer for the duration of the window of speculative execution.
The numbers change a lot from month to month. Depends on delivery rate (e.g. Tesla does bulk delivery every three months), and there is typically a spike in deliveries when a model starts shipping, since there are months of backorders to work through. New models starting shipping was Mach-E last month and Model Y this month. So it's more useful to look at longer timeframes.