@@ -185,7 +185,10 @@ pub fn adjust_intrinsic_arguments<'a, 'b, 'gcc, 'tcx>(
185185 | "__builtin_ia32_vplzcntq_128_mask"
186186 | "__builtin_ia32_cvtqq2pd128_mask"
187187 | "__builtin_ia32_cvtqq2pd256_mask"
188- | "__builtin_ia32_cvtqq2ps256_mask" => {
188+ | "__builtin_ia32_cvtqq2ps256_mask"
189+ | "__builtin_ia32_cvtuqq2pd128_mask"
190+ | "__builtin_ia32_cvtuqq2pd256_mask"
191+ | "__builtin_ia32_cvtuqq2ps256_mask" => {
189192 let mut new_args = args. to_vec ( ) ;
190193 // Remove last arg as it doesn't seem to be used in GCC and is always false.
191194 new_args. pop ( ) ;
@@ -381,7 +384,8 @@ pub fn adjust_intrinsic_arguments<'a, 'b, 'gcc, 'tcx>(
381384 ) ;
382385 args = vec ! [ arg. get_address( None ) ] . into ( ) ;
383386 }
384- "__builtin_ia32_cvtqq2pd512_mask" | "__builtin_ia32_cvtqq2ps512_mask" => {
387+ "__builtin_ia32_cvtqq2pd512_mask" | "__builtin_ia32_cvtqq2ps512_mask" | "__builtin_ia32_cvtuqq2pd512_mask" |
388+ "__builtin_ia32_cvtuqq2ps512_mask" => {
385389 let mut old_args = args. to_vec ( ) ;
386390 let mut new_args = vec ! [ ] ;
387391 new_args. push ( old_args. swap_remove ( 0 ) ) ;
@@ -493,6 +497,11 @@ pub fn adjust_intrinsic_arguments<'a, 'b, 'gcc, 'tcx>(
493497 let new_args = args. to_vec ( ) ;
494498 args = vec ! [ new_args[ 1 ] , new_args[ 0 ] , new_args[ 2 ] ] . into ( ) ;
495499 }
500+ "__builtin_ia32_rangesd128_mask_round" | "__builtin_ia32_rangess128_mask_round"
501+ | "__builtin_ia32_reducesd_mask_round" => {
502+ let new_args = args. to_vec ( ) ;
503+ args = vec ! [ new_args[ 0 ] , new_args[ 1 ] , new_args[ 4 ] , new_args[ 2 ] , new_args[ 3 ] , new_args[ 5 ] ] . into ( ) ;
504+ }
496505 _ => ( ) ,
497506 }
498507 }
@@ -1031,6 +1040,14 @@ pub fn intrinsic<'gcc, 'tcx>(name: &str, cx: &CodegenCx<'gcc, 'tcx>) -> Function
10311040 "llvm.x86.avx512.sitofp.round.v4f64.v4i64" => "__builtin_ia32_cvtqq2pd256_mask" ,
10321041 "llvm.x86.avx512.sitofp.round.v8f32.v8i64" => "__builtin_ia32_cvtqq2ps512_mask" ,
10331042 "llvm.x86.avx512.sitofp.round.v4f32.v4i64" => "__builtin_ia32_cvtqq2ps256_mask" ,
1043+ "llvm.x86.avx512.uitofp.round.v8f64.v8u64" => "__builtin_ia32_cvtuqq2pd512_mask" ,
1044+ "llvm.x86.avx512.uitofp.round.v2f64.v2u64" => "__builtin_ia32_cvtuqq2pd128_mask" ,
1045+ "llvm.x86.avx512.uitofp.round.v4f64.v4u64" => "__builtin_ia32_cvtuqq2pd256_mask" ,
1046+ "llvm.x86.avx512.uitofp.round.v8f32.v8u64" => "__builtin_ia32_cvtuqq2ps512_mask" ,
1047+ "llvm.x86.avx512.uitofp.round.v4f32.v4u64" => "__builtin_ia32_cvtuqq2ps256_mask" ,
1048+ "llvm.x86.avx512.mask.reduce.pd.512" => "__builtin_ia32_reducepd512_mask_round" ,
1049+ "llvm.x86.avx512.mask.reduce.ps.512" => "__builtin_ia32_reduceps512_mask_round" ,
1050+ "llvm.x86.avx512.mask.reduce.sd" => "__builtin_ia32_reducesd_mask_round" ,
10341051
10351052 // NOTE: this file is generated by https://github.com/GuillaumeGomez/llvmint/blob/master/generate_list.py
10361053 _ => include ! ( "archs.rs" ) ,
0 commit comments