Take: ``` int f(short a, short b) { if (a > b) { int aa = a; int bb = b; bb++; int t = aa > bb ? aa : bb; return t; } return 0; } ``` This should be optimized to just: ``` int f0(short a, short b) { if (a > b) { return a; } return 0; } ``` As if a is equal b+1 (that is the only case where a>b matters), then `extend<a>` and `extend<b>+1` are still equal.