https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88100
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- So the vec_splat_* functions are not properly prototyped? Because void bar (signed char); void foo() { signed char cs0 = 0x100; bar (0x100); } > gcc-8 t.c -S t.c: In function ‘foo’: t.c:3:25: warning: overflow in conversion from ‘int’ to ‘signed char’ changes value from ‘256’ to ‘0’ [-Woverflow] signed char cs0 = 0x100; ^~~~~ t.c:4:12: warning: overflow in conversion from ‘int’ to ‘signed char’ changes value from ‘256’ to ‘0’ [-Woverflow] bar (0x100); ^~~~~ so likely they have promoted (int) argument types? (ugh, lots of macros in altivec.h)