(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr78904-3.c
       1  /* PR target/78904 */
       2  /* { dg-do assemble } */
       3  /* { dg-options "-O2" } */
       4  
       5  typedef __SIZE_TYPE__ size_t;
       6  
       7  struct S1
       8  {
       9    unsigned char pad1;
      10    unsigned char val;
      11    unsigned short pad2;
      12  };
      13  
      14  extern struct S1 t[256];
      15  
      16  struct S1 test_and (struct S1 a, size_t i)
      17  {
      18    a.val &= t[i].val;
      19  
      20    return a;
      21  }
      22  
      23  struct S1 test_or (struct S1 a, size_t i)
      24  {
      25    a.val |= t[i].val;
      26  
      27    return a;
      28  }
      29  
      30  struct S1 test_xor (struct S1 a, size_t i)
      31  {
      32    a.val ^= t[i].val;
      33  
      34    return a;
      35  }
      36  
      37  struct S1 test_add (struct S1 a, size_t i)
      38  {
      39    a.val += t[i].val;
      40  
      41    return a;
      42  }