(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
vect-shr-reg.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -march=armv8.2-a" } */
       3  
       4  #include <stdint.h>
       5  #include <stdio.h>
       6  
       7  #pragma GCC target "+nosve"
       8  
       9  int __attribute__((noinline))
      10  f(uint64_t *__restrict a, uint64_t *__restrict b, uint64_t *__restrict c)
      11  {
      12    int i;
      13  
      14    for (i = 0; i < 16; i++)
      15      a[i] = b[i] >> c[i];
      16  }
      17  
      18  
      19  int __attribute__((noinline))
      20  g(int64_t *__restrict a, int64_t *__restrict b, int64_t *__restrict c)
      21  {
      22    int i;
      23  
      24    for (i = 0; i < 16; i++)
      25      a[i] = b[i] >> c[i];
      26  }
      27  
      28  /* { dg-final { scan-assembler "neg\\tv" } } */
      29  /* { dg-final { scan-assembler "ushl\\tv" } } */
      30  /* { dg-final { scan-assembler "sshl\\tv" } } */