https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102844
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> --- Registering jump thread: (10, 16) incoming edge; (16, 17) normal; (17, 13) nocopy; <bb 6> [local count: 75809931]: if (nd_5 >= 128) goto <bb 10>; [40.00%] else goto <bb 11>; [60.00%] <bb 10> [local count: 25267450]: <L1>: ta = 0; goto <bb 16>; [100.00%] <bb 16> [local count: 50537478]: if (nd_5 > 130) goto <bb 18>; [25.00%] else goto <bb 17>; [75.00%] <bb 17> [local count: 50537478]: if (nd_5 >= 128) goto <bb 13>; [66.67%] else goto <bb 14>; [33.33%] <bb 13> [local count: 25265782]: <L4>: nd.7_11 = (signed char) nd_5; _12 = nd.7_11 + -128; _13 = (unsigned char) _12; dic = _13; goto <bb 15>; [100.00%] and bb 17 is where we later insert the stmt and it is indeed marked as 'nocopy'.