/* { dg-do compile { target { rv32 && { ! riscv_abi_e } } } } */ /* { dg-options "-march=rv32gc_xtheadbb" } */ /* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Os" "-Og" "-Oz" } } */ struct c { int f : 25; } d; int b; extern unsigned int e[]; void g() { d.f = e[2] >> (b << ~4194303 + 4194332) - 58096371; } /* { dg-final { scan-assembler-not {th.extu\t[ax][0-9]+,[ax][0-9]+,37,13} } } */