https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98252
Bug ID: 98252 Summary: gcc 10 unaligned copy (with tree-loop-vectorize) produce wrong result Product: gcc Version: 10.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: a3at.mail at gmail dot com Target Milestone: --- Created attachment 49750 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49750&action=edit test case In the attachment there is an example of two functions: - incremental_copy_fast_path - incremental_copy_fast_path_safe If it will be compiled with -O1 -ftree-loop-vectorize, safe variants works correctly (incremental_copy_fast_path_safe), while other (incremental_copy_fast_path) does not, and looks like the problem is that it copies 16 bytes at a time (movdqu+movups), while this does not looks correct, since it may be changed after copying (since the memory overlaps). Is this some problem in the code due to some UB because of unaligned store/load? Or a compiler issue? Thanks in advance!