vect: Fix vect_reduction_def check for odd/even widen mult [PR116142]
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / 20220518-1.c
blob1822aee61519837baca11904b25a42ff93b70312
1 /* { dg-do compile } */
2 /* { dg-additional-options "-funswitch-loops" } */
4 enum {
5 MOD_WVG_MASK_TEX_USE_INT,
6 MOD_WVG_MASK_TEX_USE_RED,
7 MOD_WVG_MASK_TEX_USE_BLUE,
8 MOD_WVG_MASK_TEX_USE_SAT,
9 MOD_WVG_MASK_TEX_USE_VAL,
10 MOD_WVG_MASK_TEX_USE_ALPHA
11 } foo_num;
12 float *foo_org_w;
13 int *foo_new_w;
14 float foo_fact;
15 int foo_tex_use_channel, foo_i, foo_texres_0;
16 void foo()
18 for (; foo_num;)
19 switch (foo_tex_use_channel) {
20 case MOD_WVG_MASK_TEX_USE_INT:
21 foo_org_w[foo_i] = foo_new_w[foo_i] * foo_texres_0;
22 break;
23 case MOD_WVG_MASK_TEX_USE_RED:
24 foo_org_w[foo_i] = 0;
25 case MOD_WVG_MASK_TEX_USE_BLUE:
26 foo_org_w[foo_i] = foo_fact + foo_org_w[foo_i];
27 break;
28 case MOD_WVG_MASK_TEX_USE_SAT:
29 foo_org_w[foo_i] = foo_fact;
30 break;
31 case MOD_WVG_MASK_TEX_USE_VAL:
32 foo_org_w[foo_i] = 0;
33 case MOD_WVG_MASK_TEX_USE_ALPHA:
34 foo_org_w[foo_i] = foo_fact + foo_org_w[foo_i];
35 break;
36 default:
37 foo_org_w[foo_i] = foo_new_w[foo_i] * foo_texres_0;