(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
avx512vl-pr79299-2.c
       1  /* PR target/79299 */
       2  /* { dg-do assemble { target avx512vl } } */
       3  /* { dg-require-effective-target masm_intel } */
       4  /* { dg-options "-Ofast -mavx512vl -masm=intel" } */
       5  
       6  #include <immintrin.h>
       7  
       8  __m512
       9  f1 (__m512i x, void const *y)
      10  {
      11    return _mm512_i32gather_ps (x, y, 1);
      12  }
      13  
      14  __m512
      15  f2 (__m512 x, __mmask16 y, __m512i z, void const *w)
      16  {
      17    return _mm512_mask_i32gather_ps (x, y, z, w, 1);
      18  }
      19  
      20  __m512d
      21  f3 (__m256i x, void const *y)
      22  {
      23    return _mm512_i32gather_pd (x, y, 1);
      24  }
      25  
      26  __m512d
      27  f4 (__m512d x, __mmask8 y, __m256i z, void const *w)
      28  {
      29    return _mm512_mask_i32gather_pd (x, y, z, w, 1);
      30  }
      31  
      32  __m256
      33  f5 (__m512i x, void const *y)
      34  {
      35    return _mm512_i64gather_ps (x, y, 1);
      36  }
      37  
      38  __m256
      39  f6 (__m256 x, __mmask16 y, __m512i z, void const *w)
      40  {
      41    return _mm512_mask_i64gather_ps (x, y, z, w, 1);
      42  }
      43  
      44  __m512d
      45  f7 (__m512i x, void const *y)
      46  {
      47    return _mm512_i64gather_pd (x, y, 1);
      48  }
      49  
      50  __m512d
      51  f8 (__m512d x, __mmask8 y, __m512i z, void const *w)
      52  {
      53    return _mm512_mask_i64gather_pd (x, y, z, w, 1);
      54  }
      55  
      56  __m512i
      57  f9 (__m512i x, void const *y)
      58  {
      59    return _mm512_i32gather_epi32 (x, y, 1);
      60  }
      61  
      62  __m512i
      63  f10 (__m512i x, __mmask16 y, __m512i z, void const *w)
      64  {
      65    return _mm512_mask_i32gather_epi32 (x, y, z, w, 1);
      66  }
      67  
      68  __m512i
      69  f11 (__m256i x, void const *y)
      70  {
      71    return _mm512_i32gather_epi64 (x, y, 1);
      72  }
      73  
      74  __m512i
      75  f12 (__m512i x, __mmask8 y, __m256i z, void const *w)
      76  {
      77    return _mm512_mask_i32gather_epi64 (x, y, z, w, 1);
      78  }
      79  
      80  __m256i
      81  f13 (__m512i x, void const *y)
      82  {
      83    return _mm512_i64gather_epi32 (x, y, 1);
      84  }
      85  
      86  __m256i
      87  f14 (__m256i x, __mmask16 y, __m512i z, void const *w)
      88  {
      89    return _mm512_mask_i64gather_epi32 (x, y, z, w, 1);
      90  }
      91  
      92  __m512i
      93  f15 (__m512i x, void const *y)
      94  {
      95    return _mm512_i64gather_epi64 (x, y, 1);
      96  }
      97  
      98  __m512i
      99  f16 (__m512i x, __mmask8 y, __m512i z, void const *w)
     100  {
     101    return _mm512_mask_i64gather_epi64 (x, y, z, w, 1);
     102  }
     103  
     104  __m256
     105  f17 (__m256 x, __mmask8 y, __m256i z, void const *w)
     106  {
     107    return _mm256_mmask_i32gather_ps (x, y, z, w, 1);
     108  }
     109  
     110  __m128
     111  f18 (__m128 x, __mmask8 y, __m128i z, void const *w)
     112  {
     113    return _mm_mmask_i32gather_ps (x, y, z, w, 1);
     114  }
     115  
     116  __m256d
     117  f19 (__m256d x, __mmask8 y, __m128i z, void const *w)
     118  {
     119    return _mm256_mmask_i32gather_pd (x, y, z, w, 1);
     120  }
     121  
     122  __m128d
     123  f20 (__m128d x, __mmask8 y, __m128i z, void const *w)
     124  {
     125    return _mm_mmask_i32gather_pd (x, y, z, w, 1);
     126  }
     127  
     128  __m128
     129  f21 (__m128 x, __mmask8 y, __m256i z, void const *w)
     130  {
     131    return _mm256_mmask_i64gather_ps (x, y, z, w, 1);
     132  }
     133  
     134  __m128
     135  f22 (__m128 x, __mmask8 y, __m128i z, void const *w)
     136  {
     137    return _mm_mmask_i64gather_ps (x, y, z, w, 1);
     138  }
     139  
     140  __m256d
     141  f23 (__m256d x, __mmask8 y, __m256i z, void const *w)
     142  {
     143    return _mm256_mmask_i64gather_pd (x, y, z, w, 1);
     144  }
     145  
     146  __m128d
     147  f24 (__m128d x, __mmask8 y, __m128i z, void const *w)
     148  {
     149    return _mm_mmask_i64gather_pd (x, y, z, w, 1);
     150  }
     151  
     152  __m256i
     153  f25 (__m256i x, __mmask8 y, __m256i z, void const *w)
     154  {
     155    return _mm256_mmask_i32gather_epi32 (x, y, z, w, 1);
     156  }
     157  
     158  __m128i
     159  f26 (__m128i x, __mmask8 y, __m128i z, void const *w)
     160  {
     161    return _mm_mmask_i32gather_epi32 (x, y, z, w, 1);
     162  }
     163  
     164  __m256i
     165  f27 (__m256i x, __mmask8 y, __m128i z, void const *w)
     166  {
     167    return _mm256_mmask_i32gather_epi64 (x, y, z, w, 1);
     168  }
     169  
     170  __m128i
     171  f28 (__m128i x, __mmask8 y, __m128i z, void const *w)
     172  {
     173    return _mm_mmask_i32gather_epi64 (x, y, z, w, 1);
     174  }
     175  
     176  __m128i
     177  f29 (__m128i x, __mmask8 y, __m256i z, void const *w)
     178  {
     179    return _mm256_mmask_i64gather_epi32 (x, y, z, w, 1);
     180  }
     181  
     182  __m128i
     183  f30 (__m128i x, __mmask8 y, __m128i z, void const *w)
     184  {
     185    return _mm_mmask_i64gather_epi32 (x, y, z, w, 1);
     186  }
     187  
     188  __m256i
     189  f31 (__m256i x, __mmask8 y, __m256i z, void const *w)
     190  {
     191    return _mm256_mmask_i64gather_epi64 (x, y, z, w, 1);
     192  }
     193  
     194  __m128i
     195  f32 (__m128i x, __mmask8 y, __m128i z, void const *w)
     196  {
     197    return _mm_mmask_i64gather_epi64 (x, y, z, w, 1);
     198  }
     199  
     200  __m256
     201  f33 (__m256 x, __m256i z, void const *w)
     202  {
     203    return _mm256_mmask_i32gather_ps (x, -1, z, w, 1);
     204  }
     205  
     206  __m128
     207  f34 (__m128 x, __m128i z, void const *w)
     208  {
     209    return _mm_mmask_i32gather_ps (x, -1, z, w, 1);
     210  }
     211  
     212  __m256d
     213  f35 (__m256d x, __m128i z, void const *w)
     214  {
     215    return _mm256_mmask_i32gather_pd (x, -1, z, w, 1);
     216  }
     217  
     218  __m128d
     219  f36 (__m128d x, __m128i z, void const *w)
     220  {
     221    return _mm_mmask_i32gather_pd (x, -1, z, w, 1);
     222  }
     223  
     224  __m128
     225  f37 (__m128 x, __m256i z, void const *w)
     226  {
     227    return _mm256_mmask_i64gather_ps (x, -1, z, w, 1);
     228  }
     229  
     230  __m128
     231  f38 (__m128 x, __m128i z, void const *w)
     232  {
     233    return _mm_mmask_i64gather_ps (x, -1, z, w, 1);
     234  }
     235  
     236  __m256d
     237  f39 (__m256d x, __m256i z, void const *w)
     238  {
     239    return _mm256_mmask_i64gather_pd (x, -1, z, w, 1);
     240  }
     241  
     242  __m128d
     243  f40 (__m128d x, __m128i z, void const *w)
     244  {
     245    return _mm_mmask_i64gather_pd (x, -1, z, w, 1);
     246  }
     247  
     248  __m256i
     249  f41 (__m256i x, __m256i z, void const *w)
     250  {
     251    return _mm256_mmask_i32gather_epi32 (x, -1, z, w, 1);
     252  }
     253  
     254  __m128i
     255  f42 (__m128i x, __m128i z, void const *w)
     256  {
     257    return _mm_mmask_i32gather_epi32 (x, -1, z, w, 1);
     258  }
     259  
     260  __m256i
     261  f43 (__m256i x, __m128i z, void const *w)
     262  {
     263    return _mm256_mmask_i32gather_epi64 (x, -1, z, w, 1);
     264  }
     265  
     266  __m128i
     267  f44 (__m128i x, __m128i z, void const *w)
     268  {
     269    return _mm_mmask_i32gather_epi64 (x, -1, z, w, 1);
     270  }
     271  
     272  __m128i
     273  f45 (__m128i x, __m256i z, void const *w)
     274  {
     275    return _mm256_mmask_i64gather_epi32 (x, -1, z, w, 1);
     276  }
     277  
     278  __m128i
     279  f46 (__m128i x, __m128i z, void const *w)
     280  {
     281    return _mm_mmask_i64gather_epi32 (x, -1, z, w, 1);
     282  }
     283  
     284  __m256i
     285  f47 (__m256i x, __m256i z, void const *w)
     286  {
     287    return _mm256_mmask_i64gather_epi64 (x, -1, z, w, 1);
     288  }
     289  
     290  __m128i
     291  f48 (__m128i x, __m128i z, void const *w)
     292  {
     293    return _mm_mmask_i64gather_epi64 (x, -1, z, w, 1);
     294  }