https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66801
--- Comment #16 from Richard Biener <rguenth at gcc dot gnu.org> --- So, if it is related to vectorization (if I ever get to reproduce it I'll try -fno-tree-vectorize) then it might be the /* If arg0 is derived from the address of an object or function, we may be able to fold this expression using the object or function's alignment. */ (simplify (bit_and (convert? @0) INTEGER_CST@1) (if (POINTER_TYPE_P (TREE_TYPE (@0)) && tree_nop_conversion_p (type, TREE_TYPE (@0))) (with { unsigned int align; unsigned HOST_WIDE_INT bitpos; get_pointer_alignment_1 (@0, &align, &bitpos); } (if (wi::ltu_p (@1, align / BITS_PER_UNIT)) { wide_int_to_tree (type, wi::bit_and (@1, bitpos / BITS_PER_UNIT)); })))) pattern somehow going wild (from triggering within CCP itself?). Thus as third step I'll try disabling that one.