1  /* PR target/88547 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -mavx2 -mno-xop -mno-avx512f" } */
       4  /* { dg-final { scan-assembler-not "vpmingt\[bwd]\[\t ]" } } */
       5  /* { dg-final { scan-assembler-times "vpminub\[\t ]" 2 } } */
       6  /* { dg-final { scan-assembler-times "vpminsb\[\t ]" 2 } } */
       7  /* { dg-final { scan-assembler-times "vpminuw\[\t ]" 2 } } */
       8  /* { dg-final { scan-assembler-times "vpminsw\[\t ]" 2 } } */
       9  /* { dg-final { scan-assembler-times "vpminud\[\t ]" 2 } } */
      10  /* { dg-final { scan-assembler-times "vpminsd\[\t ]" 2 } } */
      11  
      12  typedef signed char v32qi __attribute__((vector_size(32)));
      13  typedef unsigned char v32uqi __attribute__((vector_size(32)));
      14  typedef short v16hi __attribute__((vector_size(32)));
      15  typedef unsigned short v16uhi __attribute__((vector_size(32)));
      16  typedef int v8si __attribute__((vector_size(32)));
      17  typedef unsigned v8usi __attribute__((vector_size(32)));
      18  typedef long long v4di __attribute__((vector_size(32)));
      19  typedef unsigned long long v4udi __attribute__((vector_size(32)));
      20  
      21  __attribute__((noipa)) v32qi
      22  f1 (v32qi x, v32qi y)
      23  {
      24    return x <= y;
      25  }
      26  
      27  __attribute__((noipa)) v32uqi
      28  f2 (v32uqi x, v32uqi y)
      29  {
      30    return x <= y;
      31  }
      32  
      33  __attribute__((noipa)) v32qi
      34  f3 (v32qi x, v32qi y)
      35  {
      36    return x >= y;
      37  }
      38  
      39  __attribute__((noipa)) v32uqi
      40  f4 (v32uqi x, v32uqi y)
      41  {
      42    return x >= y;
      43  }
      44  
      45  __attribute__((noipa)) v16hi
      46  f5 (v16hi x, v16hi y)
      47  {
      48    return x <= y;
      49  }
      50  
      51  __attribute__((noipa)) v16uhi
      52  f6 (v16uhi x, v16uhi y)
      53  {
      54    return x <= y;
      55  }
      56  
      57  __attribute__((noipa)) v16hi
      58  f7 (v16hi x, v16hi y)
      59  {
      60    return x >= y;
      61  }
      62  
      63  __attribute__((noipa)) v16uhi
      64  f8 (v16uhi x, v16uhi y)
      65  {
      66    return x >= y;
      67  }
      68  
      69  __attribute__((noipa)) v8si
      70  f9 (v8si x, v8si y)
      71  {
      72    return x <= y;
      73  }
      74  
      75  __attribute__((noipa)) v8usi
      76  f10 (v8usi x, v8usi y)
      77  {
      78    return x <= y;
      79  }
      80  
      81  __attribute__((noipa)) v8si
      82  f11 (v8si x, v8si y)
      83  {
      84    return x >= y;
      85  }
      86  
      87  __attribute__((noipa)) v8usi
      88  f12 (v8usi x, v8usi y)
      89  {
      90    return x >= y;
      91  }
      92  
      93  __attribute__((noipa)) v4di
      94  f13 (v4di x, v4di y)
      95  {
      96    return x <= y;
      97  }
      98  
      99  __attribute__((noipa)) v4udi
     100  f14 (v4udi x, v4udi y)
     101  {
     102    return x <= y;
     103  }
     104  
     105  __attribute__((noipa)) v4di
     106  f15 (v4di x, v4di y)
     107  {
     108    return x >= y;
     109  }
     110  
     111  __attribute__((noipa)) v4udi
     112  f16 (v4udi x, v4udi y)
     113  {
     114    return x >= y;
     115  }