--- /dev/null
+/* { dg-do compile } */
+/* { dg-additional-options "-O3 --param vect-partial-vector-usage=1" } */
+/* { dg-additional-options "-march=x86-64-v4" { target avx512f } } */
+
+typedef struct {
+ long left, right, top, bottom;
+} MngBox;
+typedef struct {
+ MngBox object_clip[6];
+ char exists[256], frozen[];
+} MngReadInfo;
+MngReadInfo mng_info;
+
+long ReadMNGImage_i;
+
+void ReadMNGImage(int ReadMNGImage_i)
+{
+ for (; ReadMNGImage_i < 256; ReadMNGImage_i++)
+ if (mng_info.exists[ReadMNGImage_i] && mng_info.frozen[ReadMNGImage_i])
+ mng_info.object_clip[ReadMNGImage_i].left =
+ mng_info.object_clip[ReadMNGImage_i].right =
+ mng_info.object_clip[ReadMNGImage_i].top =
+ mng_info.object_clip[ReadMNGImage_i].bottom = 0;
+}
poly_uint64 nunits_in;
poly_uint64 nunits_out;
tree vectype_out;
- int vec_num;
int i;
vec<tree> vec_oprnds0 = vNULL;
vec<tree> vec_oprnds1 = vNULL;
/* Multiple types in SLP are handled by creating the appropriate number of
vectorized stmts for each SLP node. */
- vec_num = SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node);
+ auto vec_num = SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node);
/* Reject attempts to combine mask types with nonmask types, e.g. if
we have an AND between a (nonmask) boolean loaded from memory and
&& code == BIT_AND_EXPR
&& VECTOR_BOOLEAN_TYPE_P (vectype))
{
- if (loop_vinfo->scalar_cond_masked_set.contains ({ op0, 1 }))
+ if (loop_vinfo->scalar_cond_masked_set.contains ({ op0, vec_num }))
{
mask = vect_get_loop_mask (loop_vinfo, gsi, masks,
vec_num, vectype, i);
vop0, gsi);
}
- if (loop_vinfo->scalar_cond_masked_set.contains ({ op1, 1 }))
+ if (loop_vinfo->scalar_cond_masked_set.contains ({ op1, vec_num }))
{
mask = vect_get_loop_mask (loop_vinfo, gsi, masks,
vec_num, vectype, i);