1  /* PR target/92865 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-Ofast -mavx512bw -mxop -mprefer-vector-width=512" } */
       4  /* { dg-final { scan-assembler-times "vpcmp\[bwdq\]\[\t \]\[^\n\{\]*zmm\[^\n\{\]*k\[0-7\](?:\n|\[ \t\]+#)" 4 } } */
       5  /* { dg-final { scan-assembler-times "vpcmpu\[bwdq\]\[\t \]\[^\n\{\]*zmm\[^\n\{\]*k\[0-7\](?:\n|\[ \t\]+#)" 4 } } */
       6  
       7  extern char arraysb[64];
       8  extern short arraysw[32];
       9  extern int arraysd[16];
      10  extern long long arraysq[8];
      11  
      12  extern unsigned char arrayub[64];
      13  extern unsigned short arrayuw[32];
      14  extern unsigned int arrayud[16];
      15  extern unsigned long long arrayuq[8];
      16  
      17  int f1(char a)
      18  {
      19    for (int i = 0; i < 64; i++)
      20      arraysb[i] = arraysb[i] >= a;
      21  }
      22  
      23  int f2(short a)
      24  {
      25    for (int i = 0; i < 32; i++)
      26      arraysw[i] = arraysw[i] >= a;
      27  }
      28  
      29  int f3(int a)
      30  {
      31    for (int i = 0; i < 16; i++)
      32      arraysd[i] = arraysd[i] >= a;
      33  }
      34  
      35  int f4(long long a)
      36  {
      37    for (int i = 0; i < 8; i++)
      38      arraysq[i] = arraysq[i] >= a;
      39  }
      40  
      41  int f5(unsigned char a)
      42  {
      43    for (int i = 0; i < 64; i++)
      44      arrayub[i] = arrayub[i] >= a;
      45  }
      46  
      47  int f6(unsigned short a)
      48  {
      49    for (int i = 0; i < 32; i++)
      50      arrayuw[i] = arrayuw[i] >= a;
      51  }
      52  
      53  int f7(unsigned int a)
      54  {
      55    for (int i = 0; i < 16; i++)
      56      arrayud[i] = arrayud[i] >= a;
      57  }
      58  
      59  int f8(unsigned long long a)
      60  {
      61    for (int i = 0; i < 8; i++)
      62      arrayuq[i] = arrayuq[i] >= a;
      63  }