/* { dg-do compile } */ /* { dg-additional-options "-Ofast -march=skylake-avx512 -fwhole-program -w" } */ typedef float MagickRealType; typedef short Quantum; float InterpolateMagickPixelPacket_alpha[1]; int InterpolateMagickPixelPacket_i; void InterpolateMagickPixelPacket(); void main() { InterpolateMagickPixelPacket(); } typedef struct { MagickRealType red, green, blue, opacity, index; } MagickPixelPacket; typedef struct { Quantum blue, green, red, opacity; } PixelPacket; struct _Image { int colorspace; int matte; } GetMagickPixelPacket(MagickPixelPacket *pixel) { pixel->red = pixel->green = pixel->blue = 0.0; } int AlphaBlendMagickPixelPacket(struct _Image *image, PixelPacket *color, Quantum *indexes, MagickPixelPacket *pixel, MagickRealType *alpha) { if (image->matte) { *alpha = pixel->red = pixel->green = pixel->blue = pixel->opacity = color->opacity; pixel->index = 0.0; if (image->colorspace) pixel->index = *indexes; return 0; } *alpha = 1.0 / 0.2; pixel->red = *alpha * color->red; pixel->green = *alpha * color->green; pixel->blue = *alpha * color->blue; pixel->opacity = pixel->index = 0.0; if (image->colorspace && indexes) pixel->index = *indexes; } MagickPixelPacket InterpolateMagickPixelPacket_pixels[1]; PixelPacket InterpolateMagickPixelPacket_p; void InterpolateMagickPixelPacket(struct _Image *image) { Quantum *indexes; for (; InterpolateMagickPixelPacket_i; InterpolateMagickPixelPacket_i++) { GetMagickPixelPacket(InterpolateMagickPixelPacket_pixels + InterpolateMagickPixelPacket_i); AlphaBlendMagickPixelPacket( image, &InterpolateMagickPixelPacket_p + InterpolateMagickPixelPacket_i, indexes + InterpolateMagickPixelPacket_i, InterpolateMagickPixelPacket_pixels + InterpolateMagickPixelPacket_i, InterpolateMagickPixelPacket_alpha + InterpolateMagickPixelPacket_i); } }