https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103832
Bug ID: 103832 Summary: vectorized code segfaults due to misaligned access Product: gcc Version: 11.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: joakim.rosqvist at gmail dot com Target Milestone: --- Created attachment 52059 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52059&action=edit preprocessed version of source file optim.cc The attached code, which adds up values in an array, crashes due to a misaligned memory access. The array is properly aligned at index 0, but the sum starts at index 1 and so I expected the optimizer to either not vectorize the loop or to add up the first few elements separately and vectorize the sum from the first "aligned" index. >g++ -v Using built-in specs. COLLECT_GCC=g++orig COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.2.0-7ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-ZPT0kp/gcc-11-11.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-ZPT0kp/gcc-11-11.2.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.2.0 (Ubuntu 11.2.0-7ubuntu2) System used is Ubuntu 21.10 on an AMD Ryzen 3700X cpu. Commandline used to compile, which gives no output: >g++ -O -Wall -Wextra -ftree-loop-vectorize -fno-strict-aliasing -fwrapv >-fno-aggressive-loop-optimizations -fsanitize=undefined -save-temps -o optim >optim.cc Commandline to trigger the issue with output >./optim optim.cc:12:15: runtime error: load of misaligned address 0x564849975f04 for type 'aligned_float', which requires 64 byte alignment 0x564849975f04: note: pointer points here 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^