Commit Graph

547 Commits

Author SHA1 Message Date
SparrowLii
69bb74bca6 add vtrn1 and vtrn2 neon instructions 2021-03-23 05:50:03 +00:00
Alex Crichton
7599fd5310 Add static assertions for all const generics 2021-03-21 09:24:39 +00:00
Alex Crichton
60e8d7766b Unconditionally expose wasm atomic intrinsics
While they're not very useful in single-threaded mode this makes them
more useful for building libraries because you don't have to always
recompile the standard library to get the desired effect. Additionally
it helps us enable tests on CI for these functions, since the
instructions will now validate without shared memory (thankfully!).
2021-03-21 09:24:39 +00:00
Alex Crichton
8ed0d3cbd5 More wasm SIMD updates
* Sync with the latest LLVM which has a few new intrinsic names
* Move explicit tests back to `assert_instr` since `assert_instr` now
  supports specifying const-generic arguments inline.
* Enable tests where wasmtime implements the instruction as well as LLVM.
* Ensure there are tests for all functions that can be tested at this
  time (those that aren't unimplemented in wasmtime).

There's still a number of `assert_instr` tests that are commented out.
These are either because they're unimplemented in wasmtime at the moment
or LLVM doesn't have an implementation for the instruction yet.
2021-03-21 09:24:39 +00:00
NatrixAeria
c987d91239 Fix WebAssembly Atomic intrinsic names (#1093)
Due to commit 902ea588eab849e7254d3bc76abf32d833ac0dd6 in the
llvm-project i32.atomic.wait and i64.atomic.wait got renamed to
memory.atomic.wait32 and memory.atomic.wait64.
2021-03-21 00:53:03 +00:00
Sparrow Li
63facc4b68 Add vmull, vmull_high, vmlal, vmlal_high, vmlsl, vmlsl_high neon instructions (#1091) 2021-03-20 22:35:19 +00:00
surechen
ce1027d7d5 support s64|u64 for neon instruction vqadd and vqsub (#1090) 2021-03-20 00:55:11 +00:00
surechen
7947cb8bac add neon instruction vmov_n_* and vmovq_n_* (#1085) 2021-03-17 09:34:49 +00:00
Sparrow Li
4773f9b1d2 Support three parameters in the code generator and add vmla and vmls instructions (#1088) 2021-03-17 09:34:21 +00:00
Amanieu d'Antras
a1e151e838 Convert all uses of llvm_asm! to asm! (#1052) 2021-03-17 01:44:35 +00:00
Sparrow Li
7accc82569 add vcvt, vcvta, vcvtn, vcvtm, vcvtp neon instructions (#1084) 2021-03-16 14:30:05 +00:00
Sparrow Li
bb84df7d9f implement different types of parameters and double suffixes in code generator (#1083) 2021-03-15 18:45:51 +00:00
surechen
6759925278 add neon instruction vget_low_* and fix vget_high_* (#1082) 2021-03-15 10:00:24 +00:00
surechen
25116fb1eb add neon instruction vget_high_* (#1074) 2021-03-14 16:03:46 +00:00
Sparrow Li
01c99c1d05 add vcls, vclz, vcagt, vcage, vcalt, vcale neon instructions (#1072) 2021-03-13 21:55:24 +00:00
Amanieu d'Antras
e010da8411 Port all non-x86 uses of rustc_args_required_const to rustc_legacy_const_generics (#1066) 2021-03-13 19:52:30 +00:00
Christopher Serr
b132a5c769 Add vrecpe neon instruction (#1079)
This adds the vector instructions for calculating the lane-wise
reciprocal estimate.
2021-03-13 17:43:35 +00:00
Christopher Serr
282cfa4db7 Add sqrt and more rsqrte neon instructions (#1078)
This adds instructions for sqrt and some of the missing reciprocal
square-root estimate instructions.
2021-03-13 14:27:44 +00:00
Christopher Serr
677644afb9 Add vdiv neon instructions (#1077) 2021-03-13 14:26:44 +00:00
Alex Crichton
e35da555f8 Update WebAssembly SIMD/Atomics (#1073) 2021-03-11 23:30:30 +00:00
surechen
7af3c0af25 Add neon instruction vdup (#1071) 2021-03-11 12:24:19 +00:00
Sparrow Li
088067dbd9 Support _p8 type in stdarch-gen (#1070) 2021-03-10 09:54:43 +00:00
Sparrow Li
7bc90053fd add vcgez, vcgtz, vclez, vcltz neon instructions (#1069) 2021-03-10 06:14:03 +00:00
minybot
7583a92072 mm256_srli,slli_si256; mm256_bsrli,bslli_epi128 to const generics (#1067) 2021-03-10 03:44:27 +00:00
Rémy Rakic
f0a9100c7f Convert the last avx512f and avx512vpclmulqdq intrinsics (#1068) 2021-03-09 22:21:47 +00:00
surechen
90e778e408 Add neon instruction vbslq (#1065) 2021-03-09 03:44:52 +00:00
minybot
b9df0eb1c1 some Avx512f to const generics (#1064) 2021-03-09 00:49:19 +00:00
surechen
3b72ddfb43 add neon instruction vbsl (#1062) 2021-03-08 11:55:13 +00:00
Sparrow Li
b042298bc4 Modify stdarch-gen to generate instructions composed of multiple functions and add vtst instructions (#1063) 2021-03-08 11:15:04 +00:00
tmiasko
6b8d9a67ca Convert _mm_alignr_epi8 to const generics (#1061) 2021-03-07 23:33:13 +00:00
Rémy Rakic
008e1579b6 More avx512f conversions to const generics (#1060) 2021-03-07 23:29:27 +00:00
minybot
40ec296d26 avx512gnfi to const generics (#1059) 2021-03-07 15:48:44 +00:00
tmiasko
1f1bfc92df Convert _mm256_blend_{ps,pd} to const generics (#1058) 2021-03-07 15:20:05 +00:00
minybot
e54e113b05 some avx512 to const generics (#1054) 2021-03-07 15:06:22 +00:00
surechen
0203e47f5e support instructions : vabd vaba (#1053) 2021-03-06 17:12:49 +00:00
surechen
bebc695777 remove unused line 2021-03-06 17:10:52 +00:00
surechen
10d6ae269f use stdarch-gen to generate instructions 2021-03-06 17:10:52 +00:00
surechen
400651adfa edit for matching comment 2021-03-06 17:10:52 +00:00
surechen
15f8b87e37 edit 2021-03-06 17:10:52 +00:00
surechen
88ae5346e9 add neon instruction abs for floating-point 2021-03-06 17:10:52 +00:00
Rémy Rakic
59ecccfba0 convert _mm256_blend_epi16 to const generics 2021-03-06 17:09:18 +00:00
Rémy Rakic
4c3ac09c37 convert _mm256_blend_epi32 to const generics 2021-03-06 17:09:18 +00:00
Rémy Rakic
65f6a147de convert _mm_blend_epi32 to const generics 2021-03-06 17:09:18 +00:00
Rémy Rakic
8a65e1a0fb convert _mm256_extracti128_si256 to const generics 2021-03-06 17:09:18 +00:00
Rémy Rakic
ad6678a1de convert _mm256_inserti128_si256 to const generics 2021-03-06 17:09:18 +00:00
Rémy Rakic
28a93bbbad convert _mm256_shufflelo_epi16 to const generics 2021-03-06 17:09:18 +00:00
Rémy Rakic
914893b147 convert _mm256_shufflehi_epi16 to const generics 2021-03-06 17:09:18 +00:00
Rémy Rakic
fb871cd7c9 convert _mm256_permute4x64_pd to const generics 2021-03-06 17:09:18 +00:00
Rémy Rakic
913f5b9af4 convert _mm256_permute4x64_epi64 to const generics 2021-03-06 17:09:18 +00:00
Rémy Rakic
7ca45bebaa convert _mm256_mask_i64gather_pd to const generics 2021-03-06 17:09:18 +00:00