/* { dg-do compile } */ /* { dg-skip-if "" { ! { clmcpu } } } */ /* { dg-options "-mcpu=nps400 -O2 -mbitops" } */ struct thing { union { int raw; struct { unsigned a : 1; unsigned b : 1; unsigned c : 28; unsigned d : 1; unsigned e : 1; }; }; }; extern void func (int); void blah () { struct thing xx; xx.a = xx.b = 1; func (xx.raw); } void woof () { struct thing xx; xx.d = xx.e = 1; func (xx.raw); } /* { dg-final { scan-assembler "movh\.cl\\s+r\[0-9\]+,0xc0000000>>16" } } */