(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
bpf/
core-builtin-fieldinfo-rshift-2.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O0 -dA -gbtf -mco-re" } */
       3  
       4  struct S {
       5    int x;
       6    char c;
       7  };
       8  
       9  union U {
      10    int i;
      11    struct S s;
      12  };
      13  
      14  enum {
      15    FIELD_RSHIFT_U64 = 5,
      16  };
      17  
      18  unsigned int foo (union U *u)
      19  {
      20    /* sx = 32, sc = 56, i = 32; endianness independent.  */
      21    unsigned sx = __builtin_preserve_field_info (u->s.x, FIELD_RSHIFT_U64);
      22    unsigned sc = __builtin_preserve_field_info (u->s.c, FIELD_RSHIFT_U64);
      23    unsigned i  = __builtin_preserve_field_info (u->i, FIELD_RSHIFT_U64);
      24  
      25    return sx + sc + i;
      26  }
      27  
      28  /* { dg-final { scan-assembler-times "\[\t \]mov\[\t \]%r\[0-9\],32" 2 } } */
      29  /* { dg-final { scan-assembler-times "\[\t \]mov\[\t \]%r\[0-9\],56" 1 } } */
      30  
      31  /* { dg-final { scan-assembler-times "ascii \"0:1:0.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */
      32  /* { dg-final { scan-assembler-times "ascii \"0:1:1.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */
      33  /* { dg-final { scan-assembler-times "ascii \"0:0.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */
      34  
      35  /* { dg-final { scan-assembler-times "0x5\[\t \]+\[^\n\]*bpfcr_kind" 3 } } */