https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84220
Bug ID: 84220 Summary: rs6000 builtin __builtin_vec_sld() ICEs on invalid 3rd argument Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: bergner at gcc dot gnu.org Target Milestone: --- Calling the __builtin_vec_sld() builtin with an invalid 3rd argument (should be an int), we end up generating invalid gimple and we end up ICEing: bergner@pike:~/gcc/BUGS/$ /home/bergner/gcc/build/gcc-fsf-mainline-base/gcc/xgcc -B/home/bergner/gcc/build/gcc-fsf-mainline-base/gcc -S bug.i bug.i: In function ‘foo’: bug.i:5:3: internal compiler error: in fold_convert_loc, at fold-const.c:2402 return __builtin_vec_sld(a, b, c); ^~~~~~ 0x105333e7 fold_convert_loc(unsigned int, tree_node*, tree_node*) /home/bergner/gcc/gcc-fsf-mainline-base/gcc/fold-const.c:2401 0x102d0f33 fully_fold_convert /home/bergner/gcc/gcc-fsf-mainline-base/gcc/config/rs6000/rs6000-c.c:6000 0x102d119f altivec_build_resolved_builtin /home/bergner/gcc/gcc-fsf-mainline-base/gcc/config/rs6000/rs6000-c.c:6067 0x102d5cb3 altivec_resolve_overloaded_builtin(unsigned int, tree_node*, void*) /home/bergner/gcc/gcc-fsf-mainline-base/gcc/config/rs6000/rs6000-c.c:6951 0x1026612b resolve_overloaded_builtin(unsigned int, tree_node*, vec<tree_node*, va_gc, vl_embed>*) /home/bergner/gcc/gcc-fsf-mainline-base/gcc/c-family/c-common.c:7101 0x101baebf c_build_function_call_vec(unsigned int, vec<unsigned int, va_heap, vl_ptr>, tree_node*, vec<tree_node*, va_gc, vl_embed>*, vec<tree_node*, va_gc, vl_embed>*) /home/bergner/gcc/gcc-fsf-mainline-base/gcc/c/c-typeck.c:3175