1 /* { dg-do compile } */
2 /* { dg-options "-dp -w -Os -fno-tree-switch-conversion" } */
3 
4 #define MK_FUN(NAME, TYP, V)                            \
5   unsigned char __attribute__((noinline,noclone))       \
6   select_## NAME (TYP x, unsigned char y)               \
7   {                                                     \
8     switch (x)                                          \
9       {                                                 \
10       case V + 0: return 0 + y;                         \
11       case V + 1: return 1;                             \
12       case V + 2: return 2 + y;                         \
13       case V + 3: return 3;                             \
14       case V + 4: return 4 + y;                         \
15       case V + 5: return 5;                             \
16       case V + 6: return 6 + y;                         \
17       case V + 7: return 7;                             \
18       case V + 8: return 8 + y;                         \
19       case V + 9: return 9;                             \
20       case V + 10: return 10 + y;                       \
21       case V + 11: return 11;                           \
22       case V + 12: return 12 + y;                       \
23       case V + 13: return 13;                           \
24       case V + 14: return 14 + y;                       \
25       case V + 15: return 15;                           \
26       }                                                 \
27     return x;                                           \
28   }
29 
30 MK_FUN (0_s8, signed char, 0)
31 MK_FUN (0_u8, unsigned char, 0)
32 MK_FUN (0_s16, signed int, 0)
33 MK_FUN (0_u16, unsigned int, 0)
34 
35 MK_FUN (m4_s8, signed char, -4)
36 MK_FUN (m4_u8, unsigned char, -4)
37 MK_FUN (m4_s16, signed int, -4)
38 MK_FUN (m4_u16, unsigned int, -4)
39 
40 MK_FUN (4_s8, signed char, 4)
41 MK_FUN (4_u8, unsigned char, 4)
42 MK_FUN (4_s16, signed int, 4)
43 MK_FUN (4_u16, unsigned int, 4)
44 
45 /* { dg-final { scan-assembler-not "extendqisi" } } */
46 /* { dg-final { scan-assembler-not "extendhisi" } } */
47