1  /* { dg-do compile } */
       2  /* { dg-options "-march=rv32gc_xtheadbb" { target { rv32 } } } */
       3  /* { dg-options "-march=rv64gc_xtheadbb" { target { rv64 } } } */
       4  /* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" } } */
       5  
       6  struct bar
       7  {
       8    unsigned long a:6;
       9    unsigned long b:26;
      10    unsigned long c:22;
      11  };
      12  
      13  /* We prefer andi over th.extu because it can be compressed.  */
      14  
      15  unsigned long
      16  foo (struct bar *s)
      17  {
      18    return s->a;
      19  }
      20  
      21  /* { dg-final { scan-assembler-not "th.extu\t" } } */
      22  /* { dg-final { scan-assembler "andi\t" } } */