icr is tested below with macros like GPIO_INT_LOWLEVEL et al. Those macros are shifted left by GPIO_INTCFG_SHIFT, so the temporary icr variable should not be shifted right.