aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/20220518-1.c
blob: 1822aee61519837baca11904b25a42ff93b70312 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* { dg-do compile } */
/* { dg-additional-options "-funswitch-loops" } */

enum {
  MOD_WVG_MASK_TEX_USE_INT,
  MOD_WVG_MASK_TEX_USE_RED,
  MOD_WVG_MASK_TEX_USE_BLUE,
  MOD_WVG_MASK_TEX_USE_SAT,
  MOD_WVG_MASK_TEX_USE_VAL,
  MOD_WVG_MASK_TEX_USE_ALPHA
} foo_num;
float *foo_org_w;
int *foo_new_w;
float foo_fact;
int foo_tex_use_channel, foo_i, foo_texres_0;
void foo()
{
  for (; foo_num;)
    switch (foo_tex_use_channel) {
    case MOD_WVG_MASK_TEX_USE_INT:
      foo_org_w[foo_i] = foo_new_w[foo_i] * foo_texres_0;
      break;
    case MOD_WVG_MASK_TEX_USE_RED:
      foo_org_w[foo_i] = 0;
    case MOD_WVG_MASK_TEX_USE_BLUE:
      foo_org_w[foo_i] = foo_fact + foo_org_w[foo_i];
      break;
    case MOD_WVG_MASK_TEX_USE_SAT:
      foo_org_w[foo_i] = foo_fact;
      break;
    case MOD_WVG_MASK_TEX_USE_VAL:
      foo_org_w[foo_i] = 0;
    case MOD_WVG_MASK_TEX_USE_ALPHA:
      foo_org_w[foo_i] = foo_fact + foo_org_w[foo_i];
      break;
    default:
      foo_org_w[foo_i] = foo_new_w[foo_i] * foo_texres_0;
    }
}