d8aaa54b41b15009e8d806028178ce5268870a41
The cgindex N_DOT-base arm set esz from the checker-stamped element tinfo but skipped signedness, so loadopsz saw signed_elem=false and emitted MOVL/MOVZ* (zero-extend) where cstage's fldloadop reads signedness from the element type and emits MOVSXD/MOVSWQ/MOVSBQ. A negative i8/i16/i32 read of `x.o[k]` (struct `[N]T` field) round-tripped with the wrong upper bits — silent cs!=ww, byte-id-blind since bootstrap never indexes signed-narrow struct array-fields. Mirror the sibling N_INDEX-base arm: signed_elem = typeissigned(dt). loadopsz already keys on (signed,sz), so this closes all three narrow widths at once. Pure wwstage-up; cstage unchanged. 949 gains nload_i32/i16/i8 negative-read rows (run + cs==ww byte-id). combined.ww regen'd for w6c + wwdump (the cgen embedders).
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%