https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119325
--- Comment #12 from Tobias Burnus <burnus at gcc dot gnu.org> --- BTW, I added some diagnostic to the 'if' clause showing: v64sf_fmod.c:147:109: warning: ‘__from’ (‘v2sf’ {aka ‘__vector(2) float’}): size = 8, align = 64 v64sf_fmod.c:147:198: warning: ‘__from’ (‘v2sf’ {aka ‘__vector(2) float’}): size = 8, align = 64 v64sf_fmod.c:147:3730: warning: ‘__from’ (‘v4sf’ {aka ‘__vector(4) float’}): size = 16, align = 128 v64sf_fmod.c:147:3819: warning: ‘__from’ (‘v4sf’ {aka ‘__vector(4) float’}): size = 16, align = 128 v64sf_fmod.c:147:7351: warning: ‘__from’ (‘v8sf’ {aka ‘__vector(8) float’}): size = 32, align = 256 v64sf_fmod.c:147:7440: warning: ‘__from’ (‘v8sf’ {aka ‘__vector(8) float’}): size = 32, align = 256 v64sf_fmod.c:147:10976: warning: ‘__from’ (‘v16sf’ {aka ‘__vector(16) float’}): size = 64, align = 512 v64sf_fmod.c:147:11065: warning: ‘__from’ (‘v16sf’ {aka ‘__vector(16) float’}): size = 64, align = 512 v64sf_fmod.c:147:14627: warning: ‘__from’ (‘v32sf’ {aka ‘__vector(32) float’}): size = 128, align = 1024 v64sf_fmod.c:147:14716: warning: ‘__from’ (‘v32sf’ {aka ‘__vector(32) float’}): size = 128, align = 1024 147 | DEF_VARIANTS2 (fmodf, sf, sf) That's for the expansion of RESIZE_VECTOR: amdgcn_veclib.h:89:3: warning: ‘__from’ (‘v2sf’ {aka ‘__vector(2) float’}): size = 8, align = 64 89 | *((to_t *) &__from); \ | ^~~~~~~~~~~~~~~~~~~ i.e. 84 /* Cast between vectors with a different number of elements. */ 85 86 #define RESIZE_VECTOR(to_t, from) \ 87 ({ \ 88 __auto_type __from = (from); \ 89 *((to_t *) &__from); \ 90 })