blob: 9503b579a88d95c427d3e3e5a71565b0c048c125 [file] [log] [blame]
/* { 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);
}
}