Skip to content

Commit cb0b519

Browse files
committed
Add more SIMD intrinsics
1 parent c207bad commit cb0b519

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/intrinsic/llvm.rs

+19-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ pub fn adjust_intrinsic_arguments<'a, 'b, 'gcc, 'tcx>(
1313
func_name: &str,
1414
original_function_name: Option<&String>,
1515
) -> Cow<'b, [RValue<'gcc>]> {
16+
// TODO: this might not be a good way to workaround the missing tile builtins.
17+
if func_name == "__builtin_trap" {
18+
return vec![].into();
19+
}
20+
1621
// Some LLVM intrinsics do not map 1-to-1 to GCC intrinsics, so we add the missing
1722
// arguments here.
1823
if gcc_func.get_param_count() != args.len() {
@@ -287,7 +292,9 @@ pub fn adjust_intrinsic_arguments<'a, 'b, 'gcc, 'tcx>(
287292
new_args.push(last_arg);
288293
args = new_args.into();
289294
}
290-
"__builtin_ia32_vfmaddsubps512_mask" | "__builtin_ia32_vfmaddsubpd512_mask" => {
295+
"__builtin_ia32_vfmaddsubps512_mask"
296+
| "__builtin_ia32_vfmaddsubpd512_mask"
297+
| "__builtin_ia32_cmpsh_mask_round" => {
291298
let mut new_args = args.to_vec();
292299
let last_arg = new_args.pop().expect("last arg");
293300
let arg4_type = gcc_func.get_param_type(3);
@@ -1085,6 +1092,17 @@ pub fn intrinsic<'gcc, 'tcx>(name: &str, cx: &CodegenCx<'gcc, 'tcx>) -> Function
10851092
"llvm.x86.avx512.mask.load.pd.512" => "__builtin_ia32_loadapd512_mask",
10861093
"llvm.x86.avx512.mask.load.d.256" => "__builtin_ia32_movdqa32load256_mask",
10871094
"llvm.x86.avx512.mask.load.q.256" => "__builtin_ia32_movdqa64load256_mask",
1095+
"llvm.x86.avx512fp16.mask.cmp.sh" => "__builtin_ia32_cmpsh_mask_round",
1096+
"llvm.x86.avx512fp16.vcomi.sh" => "__builtin_ia32_cmpsh_mask_round",
1097+
// TODO: support the tile builtins:
1098+
"llvm.x86.ldtilecfg" => "__builtin_trap",
1099+
"llvm.x86.sttilecfg" => "__builtin_trap",
1100+
"llvm.x86.tileloadd64" => "__builtin_trap",
1101+
"llvm.x86.tilerelease" => "__builtin_trap",
1102+
"llvm.x86.tilestored64" => "__builtin_trap",
1103+
"llvm.x86.tileloaddt164" => "__builtin_trap",
1104+
"llvm.x86.tilezero" => "__builtin_trap",
1105+
"llvm.x86.tdpbf16ps" => "__builtin_trap",
10881106

10891107
// NOTE: this file is generated by https://github.com/GuillaumeGomez/llvmint/blob/master/generate_list.py
10901108
_ => include!("archs.rs"),

0 commit comments

Comments
 (0)