(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
sh/
sh2a-bld.c
       1  /* A testcase to check generation of the following SH2A specific
       2     instructions.
       3  
       4      BLD #imm3, Rn
       5      BLD.B #imm3, @(disp12, Rn)
       6   */
       7  /* { dg-do compile { target { sh2a } } }  */
       8  /* { dg-options "-Os -mbitops" }  */
       9  /* { dg-final { scan-assembler "bld"} }  */
      10  /* { dg-final { scan-assembler "bld.b"} }  */
      11  
      12  volatile struct
      13  {
      14    union
      15    {
      16      unsigned char BYTE;
      17      struct
      18      {
      19        unsigned char BIT7:1;
      20        unsigned char BIT6:1;
      21        unsigned char BIT5:1;
      22        unsigned char BIT4:1;
      23        unsigned char BIT3:1;
      24        unsigned char BIT2:1;
      25        unsigned char BIT1:1;
      26        unsigned char BIT0:1;
      27      }
      28      BIT;
      29    }
      30    ICR0;
      31  }
      32  USRSTR;
      33  
      34  int
      35  main ()
      36  {
      37    volatile unsigned char a, b, c;
      38    USRSTR.ICR0.BIT.BIT6 &= a;
      39    USRSTR.ICR0.BIT.BIT5 |= b;
      40    USRSTR.ICR0.BIT.BIT4 ^= c;
      41    return 0;
      42  }