It's not a reasonable transform, and calling getSignExtendExpr() on a pointer hits an assertion.
ashr exact x, C
(abs(x) EXACT/u (1<<C)) * signum(x)