(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
mask-pack.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-mavx512bw -O3 -fopenmp-simd -fdump-tree-vect-details" } */
       3  /* Disabling epilogues until we find a better way to deal with scans.  */
       4  /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
       5  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 10 "vect" } } */
       6  /* { dg-final { scan-assembler-not "maskmov" } } */
       7  
       8  #define LENGTH 1000
       9  
      10  long l1[LENGTH], l2[LENGTH];
      11  int i1[LENGTH], i2[LENGTH];
      12  short s1[LENGTH], s2[LENGTH];
      13  char c1[LENGTH], c2[LENGTH];
      14  double d1[LENGTH], d2[LENGTH];
      15  
      16  int test1 (int n)
      17  {
      18    int i;
      19    #pragma omp simd safelen(16)
      20    for (i = 0; i < LENGTH; i++)
      21      if (l1[i] > l2[i])
      22        i1[i] = 1;
      23  }
      24  
      25  int test2 (int n)
      26  {
      27    int i;
      28    #pragma omp simd safelen(16)
      29    for (i = 0; i < LENGTH; i++)
      30      if (i1[i] > i2[i])
      31        s1[i] = 1;
      32  }
      33  
      34  int test3 (int n)
      35  {
      36    int i;
      37    #pragma omp simd safelen(16)
      38    for (i = 0; i < LENGTH; i++)
      39      if (s1[i] > s2[i])
      40        c1[i] = 1;
      41  }
      42  
      43  int test4 (int n)
      44  {
      45    int i;
      46    #pragma omp simd safelen(16)
      47    for (i = 0; i < LENGTH; i++)
      48      if (d1[i] > d2[i])
      49        c1[i] = 1;
      50  }
      51  
      52  int test5 (int n)
      53  {
      54    int i;
      55    #pragma omp simd safelen(16)
      56    for (i = 0; i < LENGTH; i++)
      57      i1[i] = l1[i] > l2[i] ? 3 : 4;
      58  }
      59  
      60  int test6 (int n)
      61  {
      62    int i;
      63    #pragma omp simd safelen(16)
      64    for (i = 0; i < LENGTH; i++)
      65      s1[i] = i1[i] > i2[i] ? 3 : 4;
      66  }
      67  
      68  int test7 (int n)
      69  {
      70    int i;
      71    #pragma omp simd safelen(16)
      72    for (i = 0; i < LENGTH; i++)
      73      c1[i] = s1[i] > s2[i] ? 3 : 4;
      74  }
      75  
      76  int test8 (int n)
      77  {
      78    int i;
      79    #pragma omp simd safelen(16)
      80    for (i = 0; i < LENGTH; i++)
      81      c1[i] = d1[i] > d2[i] ? 3 : 4;
      82  }
      83  
      84  int test9 (int n)
      85  {
      86    int i;
      87    #pragma omp simd safelen(16)
      88    for (i = 0; i < LENGTH; i++)
      89      if (l1[i] > l2[i] && i1[i] < i2[i])
      90        c1[i] = 1;
      91  }
      92  
      93  int test10 (int n)
      94  {
      95    int i;
      96    #pragma omp simd safelen(16)
      97    for (i = 0; i < LENGTH; i++)
      98      if (l1[i] > l2[i] && i1[i] < i2[i])
      99        c1[i] = 1;
     100      else
     101        c1[i] = 2;
     102  }