(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
ctz-4.c
       1  /* { dg-do compile { target { powerpc*-*-* } } } */
       2  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
       3  /* { dg-require-effective-target powerpc_p9vector_ok } */
       4  /* { dg-options "-mdejagnu-cpu=power9 -O2" } */
       5  
       6  #include <altivec.h>
       7  
       8  vector signed char
       9  count_trailing_zeros_v16qi_1s (vector signed char a)
      10  {
      11    return vec_vctz (a);
      12  }
      13  
      14  vector signed char
      15  count_trailing_zeros_v16qi_2s (vector signed char a)
      16  {
      17    return vec_vctzb (a);
      18  }
      19  
      20  vector unsigned char
      21  count_trailing_zeros_v16qi_1u (vector unsigned char a)
      22  {
      23    return vec_vctz (a);
      24  }
      25  
      26  vector unsigned char
      27  count_trailing_zeros_v16qi_2u (vector unsigned char a)
      28  {
      29    return vec_vctzb (a);
      30  }
      31  
      32  vector short
      33  count_trailing_zeros_v8hi_1s (vector short a)
      34  {
      35    return vec_vctz (a);
      36  }
      37  
      38  vector short
      39  count_trailing_zeros_v8hi_2s (vector short a)
      40  {
      41    return vec_vctzh (a);
      42  }
      43  
      44  vector unsigned short
      45  count_trailing_zeros_v8hi_1u (vector unsigned short a)
      46  {
      47    return vec_vctz (a);
      48  }
      49  
      50  vector unsigned short
      51  count_trailing_zeros_v8hi_2u (vector unsigned short a)
      52  {
      53    return vec_vctzh (a);
      54  }
      55  
      56  vector int
      57  count_trailing_zeros_v4si_1s (vector int a)
      58  {
      59    return vec_vctz (a);
      60  }
      61  
      62  vector int
      63  count_trailing_zeros_v4si_2s (vector int a)
      64  {
      65    return vec_vctzw (a);
      66  }
      67  
      68  vector unsigned int
      69  count_trailing_zeros_v4si_1u (vector unsigned int a)
      70  {
      71    return vec_vctz (a);
      72  }
      73  
      74  vector unsigned int
      75  count_trailing_zeros_v4si_2u (vector unsigned int a)
      76  {
      77    return vec_vctzw (a);
      78  }
      79  
      80  vector long long
      81  count_trailing_zeros_v2di_1s (vector long long a)
      82  {
      83    return vec_vctz (a);
      84  }
      85  
      86  vector long long
      87  count_trailing_zeros_v2di_2s (vector long long a)
      88  {
      89    return vec_vctzd (a);
      90  }
      91  
      92  vector unsigned long long
      93  count_trailing_zeros_v2di_1u (vector unsigned long long a)
      94  {
      95    return vec_vctz (a);
      96  }
      97  
      98  vector unsigned long long
      99  count_trailing_zeros_v2di_2u (vector unsigned long long a)
     100  {
     101    return vec_vctzd (a);
     102  }
     103  
     104  /* { dg-final { scan-assembler "vctzb" } } */
     105  /* { dg-final { scan-assembler "vctzd" } } */
     106  /* { dg-final { scan-assembler "vctzh" } } */
     107  /* { dg-final { scan-assembler "vctzw" } } */
     108  /* { dg-final { scan-assembler-not "cnttzd" } } */
     109  /* { dg-final { scan-assembler-not "cnttzw" } } */