1  /* { dg-do compile } */
       2  /* { dg-options "-mraoint -O2" } */
       3  /* { dg-final { scan-assembler-times "aadd" 2 { target {! ia32 } } } } */
       4  /* { dg-final { scan-assembler-times "aand" 2 { target {! ia32 } } } } */
       5  /* { dg-final { scan-assembler-times "aor" 2 { target {! ia32 } } } } */
       6  /* { dg-final { scan-assembler-times "axor" 2 { target {! ia32 } } } } */
       7  /* { dg-final { scan-assembler-times "aadd" 1 { target ia32 } } } */
       8  /* { dg-final { scan-assembler-times "aand" 1 { target ia32 } } } */
       9  /* { dg-final { scan-assembler-times "aor" 1 { target ia32 } } } */
      10  /* { dg-final { scan-assembler-times "axor" 1 { target ia32 } } } */
      11  #include <immintrin.h>
      12  
      13  volatile int x;
      14  volatile long long y;
      15  int *a;
      16  long long *b;
      17  
      18  void extern
      19  rao_int_test (void)
      20  {
      21    _aadd_i32 (a, x);
      22    _aand_i32 (a, x);
      23    _aor_i32 (a, x);
      24    _axor_i32 (a, x);
      25  #ifdef __x86_64__
      26    _aadd_i64 (b, y);
      27    _aand_i64 (b, y);
      28    _aor_i64 (b, y);
      29    _axor_i64 (b, y);
      30  #endif
      31  }