Commit Graph

3994 Commits

Author SHA1 Message Date
bjorn3
c8729e9216 Implement _mm256_zeroupper vendor intrinsic 2023-11-24 20:45:22 +01:00
bjorn3
65da671694 Implement *fmaddsub_p*, *fmsubadd_p* and *fnmadd_p* vendor intrinsics 2023-11-24 20:45:22 +01:00
bjorn3
705031d017 Implement _mm_cvttps_epi32 2023-11-24 20:45:22 +01:00
David Tolnay
abf08329bb Replace option.map(cond) == Some(true) with option.is_some_and(cond) 2023-11-24 09:14:09 -08:00
bjorn3
3ec8d7aa4a Implement _mm_cmpestri and _mm_cmpestrm using inline asm 2023-11-24 13:39:51 +00:00
bjorn3
9c958196e7 Fix polymorphization for coroutines
Fixes rust-lang/rustc_codegen_cranelift#1429
2023-11-24 10:46:22 +01:00
bjorn3
430ab4e923 Allow function pointers in CValue::const_val
Fixes rust-lang/rustc_codegen_cranelift#1430
2023-11-24 10:22:59 +01:00
bjorn3
4ae658683f Fix fn_sig_for_fn_abi and the coroutine transform for generators
There were three issues previously:
* The self argument was pinned, despite Iterator::next taking an
  unpinned mutable reference.
* A resume argument was passed, despite Iterator::next not having one.
* The return value was CoroutineState<Item, ()> rather than Option<Item>

While these things just so happened to work with the LLVM backend,
cg_clif does much stricter checks when trying to assign a value to a
place. In addition it can't handle the mismatch between the amount of
arguments specified by the FnAbi and the FnSig.
2023-11-23 20:17:19 +00:00
bjorn3
a5fcfad890 Fix _mm_sad_epu8 implementation
Fixes rust-lang/rustc_codegen_cranelift#1426
2023-11-21 17:00:43 +01:00
bjorn3
cd7218aa9f Update Cranelift to 0.102 2023-11-21 12:10:37 +01:00
bjorn3
97ca520c44 check-cfg needs -Zunstable-options 2023-11-16 21:24:33 +00:00
bjorn3
db12abf5e1 Merge branch 'sync_from_rust' 2023-11-16 21:16:53 +00:00
bjorn3
dfc669b74c Merge commit 'def04540a4e2541b995195c752c751295606a388' into sync_cg_clif-2023-11-16 2023-11-16 21:15:07 +00:00
bjorn3
def04540a4 Rustup to rustc 1.76.0-nightly (6b771f6b5 2023-11-15) 2023-11-16 21:06:08 +00:00
bjorn3
d9122c7565 Update reference to bjorn3/rustc_codegen_cranelift 2023-11-16 20:55:49 +00:00
Mark Rousskov
497c17a390 Add check-cfg to cranelift 2023-11-15 21:45:48 -05:00
bjorn3
cc59a427c9 Use git clone --filter=tree:0 to speed up rust clones in CI 2023-11-12 17:35:58 +00:00
bjorn3
dd256865f9
Merge pull request #1425 from rust-lang/crypto_intrinsics_inline_asm
Implement AES-NI and SHA256 crypto intrinsics using inline asm
2023-11-12 18:33:57 +01:00
bjorn3
ca85cc3c7b Implement SHA256 intrinsics using inline asm 2023-11-12 17:17:57 +00:00
bjorn3
813f8b4fd0 Use inline asm for _mm_clmulepi64_si128
This is a lot more compact and significantly faster
2023-11-12 17:10:46 +00:00
bjorn3
dc60334777 Implement AES-NI intrinsics using inline asm 2023-11-12 17:10:46 +00:00
bjorn3
6ef877c8c2 Support narrowing casts in mir_operand_get_const_val 2023-11-12 17:10:46 +00:00
bjorn3
2769ac03ba Inline codegen_xgetbv into llvm_x86.rs 2023-11-12 17:10:46 +00:00
bjorn3
9205667c0d Extract codegen_inline_asm_inner function and use in codegen_xgetbv 2023-11-12 17:10:46 +00:00
bjorn3
7947070789 Minor changes to codegen_inline_asm_terminator 2023-11-12 17:10:46 +00:00
bjorn3
ede3269ed8 Print /proc/cpuinfo for the CI runner where relevant 2023-11-12 16:59:15 +00:00
bjorn3
bf85e182d0
Merge pull request #1421 from Kobzol/patch-1
Add Rustup installation instructions to README
2023-11-12 15:45:43 +01:00
Jakub Beránek
d8445b1cf2
Add Rustup installation instructions to README
Now that cranelift is distributed with Rustup, I find myself constantly searching for the https://github.com/rust-lang/rust/pull/81746 PR. I think that it would be useful to also describe the Rustup installation/usage instructions here in README.
2023-11-11 22:49:27 +01:00
bjorn3
cdae1c939f Set CG_CLIF_FORCE_GNU_AS for all rustc tests 2023-11-11 13:19:49 +00:00
bjorn3
c59226c3df Merge branch 'sync_from_rust' 2023-11-10 11:33:22 +00:00
bjorn3
d49fd9f877 Merge commit 'c84d1871dc4456539b7b578830268ab3539915d0' into sync_cg_clif-2023-11-10 2023-11-10 11:30:51 +00:00
bjorn3
c84d1871dc Rustup to rustc 1.75.0-nightly (0f44eb32f 2023-11-09) 2023-11-10 11:27:03 +00:00
bjorn3
6e7961ac5d Sync from rust 0f44eb32f1 2023-11-10 11:10:26 +00:00
bjorn3
82487a9447
Merge pull request #1417 from rust-lang/implement_xgetbv
Implement a lot of SIMD intrinsics
2023-11-07 19:49:50 +01:00
bjorn3
864973135a Implement all vendor intrinsics used by the simd-json crate 2023-11-07 18:10:12 +00:00
bjorn3
9f426cef38
Merge pull request #1416 from afonso360/aarch64-intrinsics-1
Implement AArch64 intrinsics necessary for simd-json
2023-11-07 14:38:10 +01:00
bjorn3
ecf79a304a Implement all vendor intrinsics used by the fimg crate 2023-11-07 13:32:11 +00:00
bjorn3
0a35232c85 Implement all vendor intrinsics used by the httparse crate 2023-11-07 09:42:01 +00:00
bjorn3
61e38ceea7 Implement all SSE intrinsics used by the jpeg-decoder crate 2023-11-07 08:59:16 +00:00
bjorn3
438194980b Implement all avx2 intrinsics used by the image crate 2023-11-05 19:49:30 +00:00
bjorn3
6a53acefd8 Implement _mm256_permute2f128_ps and _mm256_permute2f128_pd intrinsics 2023-11-05 18:24:39 +00:00
Afonso Bordado
209476e33a Only import aarch64 intrinsics on aarch64 2023-11-04 19:47:56 +00:00
Afonso Bordado
f824da66c6 Make neon example build in all arches 2023-11-04 19:41:08 +00:00
Afonso Bordado
70a6abfd29 Add unsigned saturating add/sub intrinsics for aarch64 2023-11-04 19:37:36 +00:00
Afonso Bordado
88c2e7896b Implement aarch64 addp intrinsics 2023-11-04 19:11:15 +00:00
Afonso Bordado
1f09bae6a8 Implement min/max neon intrisics 2023-11-04 19:07:13 +00:00
Nicholas Nethercote
8eca01f4b6 Remove support for compiler plugins.
They've been deprecated for four years.

This commit includes the following changes.
- It eliminates the `rustc_plugin_impl` crate.
- It changes the language used for lints in
  `compiler/rustc_driver_impl/src/lib.rs` and
  `compiler/rustc_lint/src/context.rs`. External lints are now called
  "loaded" lints, rather than "plugins" to avoid confusion with the old
  plugins. This only has a tiny effect on the output of `-W help`.
- E0457 and E0498 are no longer used.
- E0463 is narrowed, now only relating to unfound crates, not plugins.
- The `plugin` feature was moved from "active" to "removed".
- It removes the entire plugins chapter from the unstable book.
- It removes quite a few tests, mostly all of those in
  `tests/ui-fulldeps/plugin/`.

Closes #29597.
2023-11-04 08:50:46 +11:00
bjorn3
f6a8c3afb5 Add real implementation of _xgetbv() 2023-11-02 16:10:15 +00:00
bjorn3
909513ef74 Use Value instead of CValue in CInlineAsmOperand 2023-11-02 15:32:44 +00:00
bjorn3
ef3703694f Disable a couple of rustc tests which are broken due to a rustc bug 2023-11-02 10:27:56 +00:00