https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117939
--- Comment #2 from Jeffrey A. Law <law at gcc dot gnu.org> --- While it may not been been obviously related to the CRC work, the testcase itself looks like a CRC to me. It's almost certainly the case that the CRC pass is detecting it and turning it into a table lookup. And based on your various comments it seems like something in that path is tickling problems on nvptx. It looks like at -O3 the loop is unrolling and that in turn defeats the CRC detection code, which isn't a huge surprise.