(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr78794.c
       1  /* PR target/pr78794 */
       2  /* { dg-do compile { target ia32 } } */
       3  /* { dg-options "-O2 -march=slm -mno-bmi -mno-stackrealign" } */
       4  /* { dg-final { scan-assembler "pandn" } } */
       5  
       6  typedef unsigned long long ull;
       7  
       8  struct S1
       9  {
      10    float x;
      11    ull y;
      12  };
      13  
      14  
      15  struct S2
      16  {
      17    int a1;
      18    struct S1 *node;
      19    int *a2;
      20  };
      21  
      22  void
      23  foo(int c1, int c2, int c3, struct S2 *reg)
      24  {
      25    int i;
      26    for(i=0; i<reg->a1; i++)
      27      if(reg->node[i].y & ((ull) 1 << c1))
      28        {
      29  	if(reg->node[i].y & ((ull) 1 << c2))
      30  	  reg->node[i].y ^= ((ull) 1 << c3);
      31        }
      32  }