(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
s390/
zvector/
vec-load_bndry-1.c
       1  /* { dg-do compile { target { s390*-*-* } } } */
       2  /* { dg-options "-O0 -mzarch -march=z13 -mzvector" } */
       3  
       4  #include <vecintrin.h>
       5  
       6  signed char
       7  foo64 (signed char *p)
       8  {
       9    return vec_load_bndry (p, 64)[0];
      10    /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),0" 1 } } */
      11  }
      12  
      13  signed char
      14  foo128 (signed char *p)
      15  {
      16    return
      17      vec_load_bndry (p, 128)[0]
      18      + vec_load_bndry (p + 16, 128)[0];
      19    /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),1" 2 } } */
      20  }
      21  
      22  signed char
      23  foo256 (signed char *p)
      24  {
      25    return
      26      vec_load_bndry (p, 256)[0]
      27      + vec_load_bndry (p + 16, 256)[0]
      28      + vec_load_bndry (p + 32, 256)[0];
      29    /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),2" 3 } } */
      30  }
      31  
      32  signed char
      33  foo512 (signed char *p)
      34  {
      35    return
      36      vec_load_bndry (p, 512)[0]
      37      + vec_load_bndry (p + 16, 512)[0]
      38      + vec_load_bndry (p + 32, 512)[0]
      39      + vec_load_bndry (p + 48, 512)[0];
      40    /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),3" 4 } } */
      41  }
      42  
      43  signed char
      44  foo1024 (signed char *p)
      45  {
      46    return
      47      vec_load_bndry (p, 1024)[0]
      48      + vec_load_bndry (p + 16, 1024)[0]
      49      + vec_load_bndry (p + 32, 1024)[0]
      50      + vec_load_bndry (p + 48, 1024)[0]
      51      + vec_load_bndry (p + 64, 1024)[0];
      52    /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),4" 5 } } */
      53  }
      54  
      55  signed char
      56  foo2048 (signed char *p)
      57  {
      58    return
      59      vec_load_bndry (p, 2048)[0]
      60      + vec_load_bndry (p + 16, 2048)[0]
      61      + vec_load_bndry (p + 32, 2048)[0]
      62      + vec_load_bndry (p + 48, 2048)[0]
      63      + vec_load_bndry (p + 64, 2048)[0]
      64      + vec_load_bndry (p + 80, 2048)[0];
      65    /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),5" 6 } } */
      66  }
      67  
      68  signed char
      69  foo4096 (signed char *p)
      70  {
      71    return
      72      vec_load_bndry (p, 4096)[0]
      73      + vec_load_bndry (p + 16, 4096)[0]
      74      + vec_load_bndry (p + 32, 4096)[0]
      75      + vec_load_bndry (p + 48, 4096)[0]
      76      + vec_load_bndry (p + 64, 4096)[0]
      77      + vec_load_bndry (p + 80, 4096)[0]
      78      + vec_load_bndry (p + 96, 4096)[0];
      79    /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),6" 7 } } */
      80  }