Home | History | Annotate | Line # | Download | only in Headers
avx512pfintrin.h revision 1.1.1.1
      1 /*===------------- avx512pfintrin.h - PF intrinsics ------------------------===
      2  *
      3  *
      4  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
      5  * See https://llvm.org/LICENSE.txt for license information.
      6  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
      7  *
      8  *===-----------------------------------------------------------------------===
      9  */
     10 #ifndef __IMMINTRIN_H
     11 #error "Never use <avx512pfintrin.h> directly; include <immintrin.h> instead."
     12 #endif
     13 
     14 #ifndef __AVX512PFINTRIN_H
     15 #define __AVX512PFINTRIN_H
     16 
     17 /* Define the default attributes for the functions in this file. */
     18 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512pf")))
     19 
     20 #define _mm512_mask_prefetch_i32gather_pd(index, mask, addr, scale, hint) \
     21   __builtin_ia32_gatherpfdpd((__mmask8)(mask), (__v8si)(__m256i)(index), \
     22                              (void const *)(addr), (int)(scale), \
     23                              (int)(hint))
     24 
     25 #define _mm512_prefetch_i32gather_pd(index, addr, scale, hint) \
     26   __builtin_ia32_gatherpfdpd((__mmask8) -1, (__v8si)(__m256i)(index), \
     27                              (void const *)(addr), (int)(scale), \
     28                              (int)(hint))
     29 
     30 #define _mm512_mask_prefetch_i32gather_ps(index, mask, addr, scale, hint) \
     31   __builtin_ia32_gatherpfdps((__mmask16)(mask), \
     32                              (__v16si)(__m512i)(index), (void const *)(addr), \
     33                              (int)(scale), (int)(hint))
     34 
     35 #define _mm512_prefetch_i32gather_ps(index, addr, scale, hint) \
     36   __builtin_ia32_gatherpfdps((__mmask16) -1, \
     37                              (__v16si)(__m512i)(index), (void const *)(addr), \
     38                              (int)(scale), (int)(hint))
     39 
     40 #define _mm512_mask_prefetch_i64gather_pd(index, mask, addr, scale, hint) \
     41   __builtin_ia32_gatherpfqpd((__mmask8)(mask), (__v8di)(__m512i)(index), \
     42                              (void const *)(addr), (int)(scale), \
     43                              (int)(hint))
     44 
     45 #define _mm512_prefetch_i64gather_pd(index, addr, scale, hint) \
     46   __builtin_ia32_gatherpfqpd((__mmask8) -1, (__v8di)(__m512i)(index), \
     47                              (void const *)(addr), (int)(scale), \
     48                              (int)(hint))
     49 
     50 #define _mm512_mask_prefetch_i64gather_ps(index, mask, addr, scale, hint) \
     51   __builtin_ia32_gatherpfqps((__mmask8)(mask), (__v8di)(__m512i)(index), \
     52                              (void const *)(addr), (int)(scale), (int)(hint))
     53 
     54 #define _mm512_prefetch_i64gather_ps(index, addr, scale, hint) \
     55   __builtin_ia32_gatherpfqps((__mmask8) -1, (__v8di)(__m512i)(index), \
     56                              (void const *)(addr), (int)(scale), (int)(hint))
     57 
     58 #define _mm512_prefetch_i32scatter_pd(addr, index, scale, hint) \
     59   __builtin_ia32_scatterpfdpd((__mmask8)-1, (__v8si)(__m256i)(index), \
     60                               (void *)(addr), (int)(scale), \
     61                               (int)(hint))
     62 
     63 #define _mm512_mask_prefetch_i32scatter_pd(addr, mask, index, scale, hint) \
     64   __builtin_ia32_scatterpfdpd((__mmask8)(mask), (__v8si)(__m256i)(index), \
     65                               (void *)(addr), (int)(scale), \
     66                               (int)(hint))
     67 
     68 #define _mm512_prefetch_i32scatter_ps(addr, index, scale, hint) \
     69   __builtin_ia32_scatterpfdps((__mmask16)-1, (__v16si)(__m512i)(index), \
     70                               (void *)(addr), (int)(scale), (int)(hint))
     71 
     72 #define _mm512_mask_prefetch_i32scatter_ps(addr, mask, index, scale, hint) \
     73   __builtin_ia32_scatterpfdps((__mmask16)(mask), \
     74                               (__v16si)(__m512i)(index), (void *)(addr), \
     75                               (int)(scale), (int)(hint))
     76 
     77 #define _mm512_prefetch_i64scatter_pd(addr, index, scale, hint) \
     78   __builtin_ia32_scatterpfqpd((__mmask8)-1, (__v8di)(__m512i)(index), \
     79                               (void *)(addr), (int)(scale), \
     80                               (int)(hint))
     81 
     82 #define _mm512_mask_prefetch_i64scatter_pd(addr, mask, index, scale, hint) \
     83   __builtin_ia32_scatterpfqpd((__mmask8)(mask), (__v8di)(__m512i)(index), \
     84                               (void *)(addr), (int)(scale), \
     85                               (int)(hint))
     86 
     87 #define _mm512_prefetch_i64scatter_ps(addr, index, scale, hint) \
     88   __builtin_ia32_scatterpfqps((__mmask8)-1, (__v8di)(__m512i)(index), \
     89                               (void *)(addr), (int)(scale), (int)(hint))
     90 
     91 #define _mm512_mask_prefetch_i64scatter_ps(addr, mask, index, scale, hint) \
     92   __builtin_ia32_scatterpfqps((__mmask8)(mask), (__v8di)(__m512i)(index), \
     93                               (void *)(addr), (int)(scale), (int)(hint))
     94 
     95 #undef __DEFAULT_FN_ATTRS
     96 
     97 #endif
     98