https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71264
Bug ID: 71264 Summary: ICE in convert_move Product: gcc Version: 4.8.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: ikonomisma at googlemail dot com Target Milestone: --- The following testcase causes an ICE on gcc 4.8.4 x86_64-linux-gnu. Reproducible on gcc.godbolt.org for gcc versions since gcc 4.8, up to and including gcc 6.1, also for gcc 4.8 AArch64. #include <stdint.h> #include <stddef.h> #include <string.h> //ICE for gcc -std=gnu11/c11/gnu99/c99 -O1 -ftree-vectorize -S typedef uint8_t footype __attribute__((vector_size(4))); void test(uint8_t *ptr, uint8_t *mask) { footype mv; memcpy(&mv, mask, sizeof(mv)); for (size_t i = 0; i < 16; i += 4) { footype temp; memcpy(&temp, &ptr[i], sizeof(temp)); temp ^= mv; memcpy(&ptr[i], &temp, sizeof(temp)); } }