/* { dg-do compile } */ | |
/* { dg-options "-march=rv64gc -mabi=lp64d -O2" } */ | |
/* Fails if lshrsi3_zero_extend_3+1 uses a temp reg which has no REG_DEST | |
note. */ | |
unsigned long | |
sub (long l) | |
{ | |
union u { | |
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ | |
struct s { int a : 19; unsigned int b : 13; int x; } s; | |
#else | |
struct s { int x; unsigned int b : 13; int a : 19; } s; | |
#endif | |
long l; | |
} u; | |
u.l = l; | |
return u.s.b; | |
} | |
/* { dg-final { scan-assembler "srliw" } } */ |