https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77823
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 39735 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39735&action=edit gcc7-pr77823.patch Short patch to fix the ICE. That said, we should think of what to do with the generic vector extension for -fsanitize=undefined, right now we don't instrument anything. For stuff like shift, division, signed-integer-overflow, maybe also bool/enum for vectors of bool or enum, float-divide/float-cast, we either should modify the libubsan library, so that it would handle TK_Vector_Integer and TK_Vector_Float, likely use always passing by reference and somehow encode both the bit width of the elements and their kinds and also the number of elements in the vector (or log2 thereof) in the TypeInfo field and teach it how to print vectors {El1, El2, El3, El4} etc.? - then we could at least for some of the tests use also vector operations, e.g. for vector << vector shifts compare the second operand against vector containing element precision repeated, etc., or instead instrument it as a loop over number of elements, checking each operation separately (and reporting the individual overflow on each element separately, then as value we'd just use the scalars).