Support more SIMD intrinsics

This commit is contained in:
Antoni Boucher 2022-05-03 17:47:38 -04:00
parent 6bfe2b0b05
commit eba654c57a

View file

@ -39,6 +39,27 @@ pub fn intrinsic<'gcc, 'tcx>(name: &str, cx: &CodegenCx<'gcc, 'tcx>) -> Function
"llvm.fma.v8f64" => "__builtin_ia32_vfmaddpd512_mask",
"llvm.x86.avx512.vfmaddsub.ps.512" => "__builtin_ia32_vfmaddps512_mask",
"llvm.x86.avx512.vfmaddsub.pd.512" => "__builtin_ia32_vfmaddpd512_mask",
"llvm.x86.avx512.rcp14.ps.256" => "__builtin_ia32_rcp14ps256_mask",
"llvm.x86.avx512.rcp14.ps.128" => "__builtin_ia32_rcp14ps128_mask",
"llvm.x86.avx512.rcp14.pd.256" => "__builtin_ia32_rcp14pd256_mask",
"llvm.x86.avx512.rcp14.pd.128" => "__builtin_ia32_rcp14pd128_mask",
"llvm.x86.avx512.rsqrt14.ps.256" => "__builtin_ia32_rsqrt14ps256_mask",
"llvm.x86.avx512.rsqrt14.ps.128" => "__builtin_ia32_rsqrt14ps128_mask",
"llvm.x86.avx512.rsqrt14.pd.256" => "__builtin_ia32_rsqrt14pd256_mask",
"llvm.x86.avx512.rsqrt14.pd.128" => "__builtin_ia32_rsqrt14pd128_mask",
"llvm.x86.avx512.mask.getexp.ps.512" => "__builtin_ia32_getexpps512_mask",
"llvm.x86.avx512.mask.getexp.ps.256" => "__builtin_ia32_getexpps256_mask",
"llvm.x86.avx512.mask.getexp.ps.128" => "__builtin_ia32_getexpps128_mask",
"llvm.x86.avx512.mask.getexp.pd.512" => "__builtin_ia32_getexppd512_mask",
"llvm.x86.avx512.mask.getexp.pd.256" => "__builtin_ia32_getexppd256_mask",
"llvm.x86.avx512.mask.getexp.pd.128" => "__builtin_ia32_getexppd128_mask",
"llvm.x86.avx512.mask.rndscale.ps.256" => "__builtin_ia32_rndscaleps_256_mask",
"llvm.x86.avx512.mask.rndscale.ps.128" => "__builtin_ia32_rndscaleps_128_mask",
"llvm.x86.avx512.mask.rndscale.pd.256" => "__builtin_ia32_rndscalepd_256_mask",
"llvm.x86.avx512.mask.rndscale.pd.128" => "__builtin_ia32_rndscalepd_128_mask",
"llvm.x86.avx512.mask.scalef.ps.512" => "__builtin_ia32_scalefps512_mask",
"llvm.x86.avx512.mask.scalef.ps.256" => "__builtin_ia32_scalefps256_mask",
"llvm.x86.avx512.mask.scalef.ps.128" => "__builtin_ia32_scalefps128_mask",
// The above doc points to unknown builtins for the following, so override them:
"llvm.x86.avx2.gather.d.d" => "__builtin_ia32_gathersiv4si",