/* { dg-do compile } */ /* { dg-options "-O2 -march=r2 -mbmx" } */ /* Test generation of Nios II R2 BMX instructions. */ struct s { unsigned int pad1 : 3; unsigned int bitfield : 20; unsigned int intfield; }; void f (struct s *a, struct s *b) { a->bitfield = b->bitfield; } void g (struct s *a, struct s *b) { a->bitfield = b->intfield; } void h (struct s *a, struct s *b) { a->intfield = b->bitfield; } /* { dg-final { scan-assembler "\tmerge\t.*, 22, 3" } } */ /* { dg-final { scan-assembler "\tinsert\t.*, 22, 3" } } */ /* { dg-final { scan-assembler "\textract\t.*, 22, 3" } } */