https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121910
--- Comment #4 from JuzheZhong <juzhe.zhong at rivai dot ai> --- (In reply to Zhongyao Chen from comment #3) > gcc(trunk) have no missed multiple IRs (program points) during the analysis. > > /app/example.c:19:27: note: Compute local program points for bb 4: > /app/example.c:19:27: note: program point 1: _11 = *_10; > /app/example.c:19:27: note: program point 2: patt_67 = (unsigned short) _11; > /app/example.c:19:27: note: program point 3: patt_64 = patt_67 * patt_65; > /app/example.c:19:27: note: program point 4: _16 = *_15; > /app/example.c:19:27: note: program point 5: patt_40 = (unsigned short) _16; > /app/example.c:19:27: note: program point 6: patt_37 = patt_40 * patt_38; > /app/example.c:19:27: note: program point 7: patt_35 = patt_64 + patt_37; > /app/example.c:19:27: note: program point 8: _21 = *_20; > /app/example.c:19:27: note: program point 9: patt_141 = (unsigned short) > _21; > /app/example.c:19:27: note: program point 10: patt_144 = patt_141 * > patt_143; > /app/example.c:19:27: note: program point 11: patt_146 = patt_35 + patt_144; > /app/example.c:19:27: note: program point 12: _26 = *_25; > /app/example.c:19:27: note: program point 13: patt_148 = (unsigned short) > _26; > /app/example.c:19:27: note: program point 14: patt_151 = patt_148 * > patt_150; > /app/example.c:19:27: note: program point 15: patt_153 = patt_146 + > patt_151; > /app/example.c:19:27: note: program point 16: patt_155 = patt_153 + 32; > /app/example.c:19:27: note: program point 17: patt_157 = patt_155 >> 6; > /app/example.c:19:27: note: program point 18: *_32 = _33; > > the issue might be the next step "Compute local live ranges" ? or > max_number_of_live_regs ? I think both may be buggy. May need to take some time to dig in both functions.