(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
avx512f-vec-init.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -mavx512f" } */
       3  /* { dg-final { scan-assembler-times "vmovdqa64\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)"  0 } } */
       4  /* { dg-final { scan-assembler-times "vpbroadcastd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
       5  /* { dg-final { scan-assembler-times "vpbroadcastd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
       6  /* { dg-final { scan-assembler-times "vpbroadcastq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
       7  /* { dg-final { scan-assembler-times "vpbroadcastq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
       8  /* { dg-final { scan-assembler-times "vpbroadcastq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
       9  /* { dg-final { scan-assembler-times "vpbroadcastb\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)"  2 } } */
      10  /* { dg-final { scan-assembler-times "vpbroadcastb\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)"  1 } } */
      11  /* { dg-final { scan-assembler-times "vpbroadcastw\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)"  2 } } */
      12  /* { dg-final { scan-assembler-times "vpbroadcastw\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)"  1 } } */
      13  /* { dg-final { scan-assembler-times "vbroadcastss\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 0 } } */
      14  /* { dg-final { scan-assembler-times "vbroadcastsd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 0 } } */
      15  
      16  #include <x86intrin.h>
      17  
      18  typedef char __v64qi __attribute__ ((vector_size (64)));
      19  typedef short __v32hi __attribute__ ((vector_size (64)));
      20  
      21  __v64qi foo_1 (char c)
      22  {
      23    __v64qi v1 = {
      24        c, c, c, c, c, c, c, c,
      25        c, c, c, c, c, c, c, c,
      26        c, c, c, c, c, c, c, c,
      27        c, c, c, c, c, c, c, c,
      28        c, c, c, c, c, c, c, c,
      29        c, c, c, c, c, c, c, c,
      30        c, c, c, c, c, c, c, c,
      31        c, c, c, c, c, c, c, c
      32    };
      33  
      34    return v1;
      35  }
      36  
      37  __v32hi foo_2 (short c)
      38  {
      39    __v32hi v1 = {
      40        c, c, c, c, c, c, c, c,
      41        c, c, c, c, c, c, c, c,
      42        c, c, c, c, c, c, c, c,
      43        c, c, c, c, c, c, c, c
      44    };
      45  
      46    return v1;
      47  }
      48  
      49  __v16si foo_3 (int c)
      50  {
      51    __v16si v1 = {
      52        c, c, c, c, c, c, c, c,
      53        c, c, c, c, c, c, c, c
      54    };
      55  
      56    return v1;
      57  }
      58  
      59  __v8di foo_4 (long long c)
      60  {
      61    __v8di v1 = {
      62        c, c, c, c, c, c, c, c
      63    };
      64  
      65    return v1;
      66  }
      67  
      68  __v32qi foo_5 (char c)
      69  {
      70    __v32qi v1 = {
      71        c, c, c, c, c, c, c, c,
      72        c, c, c, c, c, c, c, c,
      73        c, c, c, c, c, c, c, c,
      74        c, c, c, c, c, c, c, c
      75    };
      76  
      77    return v1;
      78  }
      79  
      80  __v16hi foo_6 (short c)
      81  {
      82    __v16hi v1 = {
      83        c, c, c, c, c, c, c, c,
      84        c, c, c, c, c, c, c, c
      85    };
      86  
      87    return v1;
      88  }
      89  
      90  __v8si foo_7 (int c)
      91  {
      92    __v8si v1 = {
      93        c, c, c, c, c, c, c, c
      94    };
      95  
      96    return v1;
      97  }
      98  
      99  __v4di foo_8 (long long c)
     100  {
     101    __v4di v1 = {
     102        c, c, c, c
     103    };
     104  
     105    return v1;
     106  }
     107  
     108  
     109  __v16qi foo_9 (char c)
     110  {
     111    __v16qi v1 = {
     112        c, c, c, c, c, c, c, c,
     113        c, c, c, c, c, c, c, c
     114    };
     115  
     116    return v1;
     117  }
     118  
     119  __v8hi foo_10(short c)
     120  {
     121    __v8hi v1 = {
     122        c, c, c, c, c, c, c, c
     123    };
     124  
     125    return v1;
     126  }