GCC 12.1 Released
GCC 12.1 Released
Posted May 15, 2022 9:57 UTC (Sun) by anton (subscriber, #25547)In reply to: GCC 12.1 Released by Sesse
Parent article: GCC 12.1 Released
The problem happens with code that, e.g. copies a block of memory with 64-byte accesses from one unaligned address to another unaligned address. The auto-vectorized code uses movdqa for one of the addresses, and extra code is generated to align this address to a 16-byte boundary assuming that the original address is 8-byte aligned. However, the original address is not 8-byte-aligned, and the movdqa then traps.
gcc could have used movdqu instead and achieved the same performance for this loop even in the 8-byte-aligned case (plus the intended non-trap in the unaligned case).
