1  /* PR target/100549  */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O -mavx2" } */
       4  
       5  typedef char v16qi __attribute__ ((vector_size (16)));
       6  typedef char v32qi __attribute__ ((vector_size (32)));
       7  typedef short v8hi __attribute__ ((vector_size (16)));
       8  typedef short v16hi __attribute__ ((vector_size (32)));
       9  typedef int v4si __attribute__ ((vector_size (16)));
      10  typedef int v8si __attribute__ ((vector_size (32)));
      11  typedef long long v2di __attribute__ ((vector_size (16)));
      12  typedef long long v4di __attribute__ ((vector_size (32)));
      13  
      14  v16qi
      15  f1 (v16qi a)
      16  {
      17    return __builtin_ia32_pcmpeqb128 (a, a);
      18  }
      19  
      20  v8hi
      21  f2 (v8hi a)
      22  {
      23    return __builtin_ia32_pcmpeqw128 (a, a);
      24  }
      25  
      26  v4si
      27  f3 (v4si a)
      28  {
      29    return __builtin_ia32_pcmpeqd128 (a, a);
      30  }
      31  
      32  v2di
      33  f4 (v2di a)
      34  {
      35    return __builtin_ia32_pcmpeqq (a, a);
      36  }
      37  
      38  v16qi
      39  f5 (v16qi a)
      40  {
      41    return __builtin_ia32_pcmpgtb128 (a, a);
      42  }
      43  
      44  v8hi
      45  f6 (v8hi a)
      46  {
      47    return __builtin_ia32_pcmpgtw128 (a, a);
      48  }
      49  
      50  v4si
      51  f7 (v4si a)
      52  {
      53    return __builtin_ia32_pcmpgtd128 (a, a);
      54  }
      55  
      56  v2di
      57  f8 (v2di a)
      58  {
      59    return __builtin_ia32_pcmpgtq (a, a);
      60  }
      61  
      62  v32qi
      63  f9 (v32qi a)
      64  {
      65    return __builtin_ia32_pcmpeqb256 (a, a);
      66  }
      67  
      68  v16hi
      69  f10 (v16hi a)
      70  {
      71    return __builtin_ia32_pcmpeqw256 (a, a);
      72  }
      73  
      74  v8si
      75  f11 (v8si a)
      76  {
      77    return __builtin_ia32_pcmpeqd256 (a, a);
      78  }
      79  
      80  v4di
      81  f12 (v4di a)
      82  {
      83    return __builtin_ia32_pcmpeqq256 (a, a);
      84  }
      85  
      86  v32qi
      87  f13 (v32qi a)
      88  {
      89    return __builtin_ia32_pcmpgtb256 (a, a);
      90  }
      91  
      92  v16hi
      93  f14 (v16hi a)
      94  {
      95    return __builtin_ia32_pcmpgtw256 (a, a);
      96  }
      97  
      98  v8si
      99  f15 (v8si a)
     100  {
     101    return __builtin_ia32_pcmpgtd256 (a, a);
     102  }
     103  
     104  v4di
     105  f16 (v4di a)
     106  {
     107    return __builtin_ia32_pcmpgtq256 (a, a);
     108  }