on R8, the LUT seems to be (relatively) a bigger bottleneck than on my laptop. the 'SSE select' code ain't fast on either machine.
gradX_max and gradY_max are equally expensive. (comment either one of them, and we're at 2.87 GB/s on R8 without the LUT
signed char -> unsigned char for LUT