1 /* { dg-do compile } */
2 /* { dg-require-effective-target arm_thumb2_ok } */
3 /* { dg-options "-mthumb -mcpu=cortex-m3 -O2" } */
4
5 struct tmp {
6 unsigned int dummy;
7 union {
8 struct {
9 unsigned int xyz : 1;
10 unsigned int mode: 3;
11 unsigned int res : 28;
12 } bf;
13 unsigned int wordval;
14 } reg;
15 };
16
17 void set_mode(int mode)
18 {
19 volatile struct tmp *t = (struct tmp *) 0x1000;
20 t->reg.bf.mode = mode;
21 }
22
23 /* { dg-final { scan-assembler "bfi" } } */