https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117112
--- Comment #2 from Yi <652023330028 at smail dot nju.edu.cn> --- (In reply to Richard Biener from comment #1) Thank you very much for your reply. > I'm not sure whether you think the bug is that the compiler doesn't see > arr1[i] is equal to 1 and thus arr2[i] equal to 2 and k equal to 0. Yes, when the value of arr1 is within a certain range, the value of k is always equal to 0. In addition, when the size of the array is 16, the compiler seems to see that k is equal to 0. (https://godbolt.org/z/Yhxa75765) Is there a limit to what the compiler can do when the array size is large?