diff options
| author | Antoni Boucher <bouanto@zoho.com> | 2023-04-05 22:22:42 -0400 |
|---|---|---|
| committer | Antoni Boucher <bouanto@zoho.com> | 2023-04-07 08:10:34 -0400 |
| commit | 65a20d3f711e8cb6ea418fb7948a9c4a054d5bc8 (patch) | |
| tree | 7fe2355c46042850830b6e50b713fdd48951f46f | |
| parent | ba60936e4860990951d032fd92ff07ade846f3fc (diff) | |
| download | rust-65a20d3f711e8cb6ea418fb7948a9c4a054d5bc8.tar.gz rust-65a20d3f711e8cb6ea418fb7948a9c4a054d5bc8.zip | |
Fix vpshrd llvm instrinsics
| -rw-r--r-- | src/intrinsic/llvm.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/intrinsic/llvm.rs b/src/intrinsic/llvm.rs index 0edec566be3..f28348380d7 100644 --- a/src/intrinsic/llvm.rs +++ b/src/intrinsic/llvm.rs @@ -313,6 +313,13 @@ pub fn adjust_intrinsic_arguments<'a, 'b, 'gcc, 'tcx>(builder: &Builder<'a, 'gcc let new_args = args.to_vec(); args = vec![new_args[1], new_args[0], new_args[2], new_args[3], new_args[4]].into(); }, + "__builtin_ia32_vpshrdv_v8di" | "__builtin_ia32_vpshrdv_v4di" | "__builtin_ia32_vpshrdv_v2di" | + "__builtin_ia32_vpshrdv_v16si" | "__builtin_ia32_vpshrdv_v8si" | "__builtin_ia32_vpshrdv_v4si" | + "__builtin_ia32_vpshrdv_v32hi" | "__builtin_ia32_vpshrdv_v16hi" | "__builtin_ia32_vpshrdv_v8hi" => { + // The first two arguments are reversed, compared to LLVM. + let new_args = args.to_vec(); + args = vec![new_args[1], new_args[0], new_args[2]].into(); + }, _ => (), } } |
