> Why put this block so far away from it's first and only user?

The user requires tybits and ey. One of them has to be computed first.

> Also consider using a ?: expression.

I find an if statement to be a little easier to read in this particular case.

 > It ought to be moved down

Ok.

> Restricting this to I64 code doesn't look right.

I32 does not have a 64 bit BT instruction.