992 Commits

Author SHA1 Message Date
Luo Jia
935d5297e3
Fix avx512f build on x86-32; fix avx512gfni test fail (#1264) 2021-12-09 12:30:22 +00:00
Luo Jia
72061cb5f5
RISC-V feature and detect macro (#1263) 2021-12-08 11:41:12 +00:00
Luo Jia
3d0bdfeeb1
Add RISC-V platform and PAUSE instruction (#1262) 2021-12-05 02:57:53 +00:00
Eric Huss
0256736d2f
Fix _mm_extract_ps example. (#1261) 2021-12-04 13:04:09 +00:00
Jörn Horstmann
54d690dc70
Implement avx512 masked load and store intrinsics (#1254) 2021-12-04 13:03:40 +00:00
Amanieu d'Antras
937978eeef
Update the intrinsic checker tool (#1258) 2021-12-04 13:03:30 +00:00
Tobias Kortkamp
972030f2b2
Support riscv64gc-unknown-freebsd (#1260) 2021-11-27 14:01:23 +00:00
Amanieu d'Antras
ca1f7cc1a6
Add missing vtst_p16 and vtstq_p16 intrinsics (#1257) 2021-11-20 20:51:37 +00:00
Thom Chiovoloni
08a70f96fe
Work-around buggy Intel chips erroneously reporting BMI1/BMI2 support (#1249) 2021-11-19 01:29:04 +00:00
Sparrow Li
7c3bd04537
complete armv8 instructions (#1256) 2021-11-19 01:24:36 +00:00
Eric Huss
1e2dcdcbd4
Fix i8mm feature with bootstrap compiler. (#1252) 2021-11-15 03:12:25 +00:00
Eric Huss
a7d3ae0d6b
Fix unused link_name attribute. (#1251) 2021-11-13 19:20:11 +00:00
Sparrow Li
be5e1be224
Add remaining insturctions (#1250)
* add vmmla vusmmla vsm4e vsm3 vrax1 vxar vsha512 vbcax veor3 neon instructions

* update runtime feature detect

* correct tests

* add `vrnd32x` `vrnd64x`

* add MISSING.md
2021-11-10 15:19:59 +00:00
senevoldsen
46d0e8d519
Remove that _mm256_set_epi8 sets in reversed order. (#1248) 2021-11-08 00:58:47 +00:00
Amanieu d'Antras
023a926d39
Make the wasm and wasm64 modules unstable (#1247) 2021-11-05 02:50:23 +00:00
Jamie Cunliffe
b04e740f24
Handle intrinsics with constraints in the test tool. (#1237) 2021-11-05 01:47:31 +00:00
Jamie Cunliffe
8d6f3f36b3
Correct the vqrdmlah intrinsics. (#1246) 2021-11-04 14:16:26 +00:00
Alex Crichton
157d273c5c
Fix parsing a doc block for _mm_extract_ps (#1242) 2021-11-01 23:00:59 +00:00
devsnek
d98a902f20
expose wasm intrinsics using target_family = "wasm" (#1241) 2021-10-31 18:12:24 +00:00
Alex Crichton
05aad76b58
Add a rudimentary wasm64 module with intrinsics (#1240) 2021-10-30 22:14:54 +01:00
Jamie Cunliffe
813530237d
Do not emit undefined lshr/ashr for Neon shifts (#1238) 2021-10-22 20:24:54 +01:00
Sparrow Li
9df48f1e57
Complete the remaining neon instructions (#1230) 2021-10-21 10:52:05 +01:00
Taiki Endo
42ae943ab4
Fix error message of is_*_feature_detected on nort_feature (#1232) 2021-10-16 22:22:47 +01:00
Jubilee
b86a083d10
Add example to _mm_extract_ps (#1228) 2021-10-06 10:34:54 +01:00
Sparrow Li
68e35d306f
Complete vld* and vst* neon instructions (#1224) 2021-09-29 04:28:10 +01:00
Sparrow Li
bdea403c54
Complete vst1 neon instructions (#1221) 2021-09-24 13:26:29 +01:00
Hans Kratz
26cce19427
Make dedup guard optional (#1215) 2021-09-20 17:19:05 +01:00
Hans Kratz
504b0cf68b
Arm Fused Multiply-Add fixes (#1219) 2021-09-20 17:18:20 +01:00
Sparrow Li
328553ef64
Complete vld1 instructions with some corrections (#1216) 2021-09-18 14:13:24 +01:00
Hans Kratz
4f8ed0335c
Check inlining and instruction count for assert_instr(nop) as well (#1218) 2021-09-18 01:53:32 +01:00
Jamie Cunliffe
bd0e352338
Intrinsic test tool to compare neon intrinsics with C (#1170) 2021-09-09 19:16:45 +01:00
Hans Kratz
5cd6850171
Normalize [us]shll.* ..., #0 aarch64 disassembly to the preferred [us]xtl.* (#1213) 2021-09-08 23:41:31 +01:00
Hans Kratz
00f611f305
Change aarch64 vld1* instructions to not cause individual loads (#1207) 2021-09-08 23:40:49 +01:00
Hans Kratz
bf2122753a Disable arm inlining check again for now as some tests are still failing. 2021-09-09 00:22:33 +02:00
Hans Kratz
5995d769ad Use a lighter dedup guard in the assert_instr test shims. 2021-09-09 00:22:33 +02:00
Hans Kratz
755e622d17 Implement proper subroutine call detection for x86, x86_64, aarch64 and wasm32. 2021-09-08 19:14:13 +02:00
Hans Kratz
03fa985cf0 remove assembly parsing special case for otool output (no longer needed) 2021-09-08 19:14:13 +02:00
Hans Kratz
999d954aa4 using v8.6a target feature to cover more instructions 2021-09-08 19:14:13 +02:00
Hans Kratz
f5af9d15a9 Use objdump on Macos x86_64 as well. 2021-09-08 19:14:13 +02:00
Hans Kratz
f15c851517 Use LLVM objdump on Macos ARM64 because it is not possible to enable TME support with otool 2021-09-08 19:14:13 +02:00
Sparrow Li
9e34c6d4c8
Add vst neon instructions (#1205)
* add vst neon instructions

* modify the instruction limit
2021-08-31 21:35:30 +01:00
Joshua Liebow-Feeser
c9e0420448
powerpc::vector_bool_long is a vector of two i64s (#1204) 2021-08-27 17:33:23 +01:00
Sparrow Li
4baf95fddd
add vldx neon instructions (#1200) 2021-08-24 19:51:30 +01:00
Alex Crichton
b10d00cae0
Update codegen for simd wasm intrinsics with LLVM 13 (#1203) 2021-08-23 01:45:59 +01:00
Frank Steffahn
870cf5751d Fix typos “an”→“a” 2021-08-22 18:55:49 +01:00
Frank Steffahn
5b5df599d3 Fix typos “a”→“an” 2021-08-22 18:55:49 +01:00
Pierre Krieger
78bef173f4 Fix "it's purpose" -> "its purpose" 2021-08-14 17:44:03 +01:00
Ömer Sinan Ağacan
103e90de1d Rewording in Wasm all_true SIMD instruction docs
- Use "true" and "false" instead of "1" and "0"
- "nonzero" -> "non-zero"
- "returns true if ... or false if ..." -> "returns true ..., false
  otherwise"
2021-08-14 09:28:29 +01:00
Aleksey Kladov
e91f80fc22 mark core::arch::wasm32::unreachable as safe
This intrinsic doesn't have any preconditions and is always safe to
call, so it can be safe.

This function is already stable, but dropping `unsafe` is a backwards
compatible change.

Note tha we already have a precedent for wasm intrinsics being safe --
wasm simd is safe.

It is relatively practically important to mark this safe --
wasm32::unreachable is directly useful in practice as more codesize
efficient `panic!()`.
2021-08-12 11:09:05 +01:00
Mara Bos
685e8d906d Remove references to the crates on crates.io.
They haven't been published in years. This removes the suggestion that
the crates on crates.io are actively updated/maintained.
2021-08-12 00:24:32 +01:00