Jubilee Young
1914c722b5
compiler: add simd_ctpop intrinsic
2024-05-18 18:11:20 -07:00
Gary Guo
cfee72aa24
Fix tests and bless
2024-04-24 13:12:33 +01:00
joboet
989660c3e6
rename expose_addr
to expose_provenance
2024-04-03 16:00:38 +02:00
Jacob Pratt
e9ef8e1efa
Rollup merge of #122935 - RalfJung:with-exposed-provenance, r=Amanieu
...
rename ptr::from_exposed_addr -> ptr::with_exposed_provenance
As discussed on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/136281-t-opsem/topic/To.20expose.20or.20not.20to.20expose/near/427757066 ).
The old name, `from_exposed_addr`, makes little sense as it's not the address that is exposed, it's the provenance. (`ptr.expose_addr()` stays unchanged as we haven't found a better option yet. The intended interpretation is "expose the provenance and return the address".)
The new name nicely matches `ptr::without_provenance`.
2024-04-02 20:37:39 -04:00
Ralf Jung
f2cff5ebb9
also rename the SIMD intrinsic
2024-03-23 23:03:37 +01:00
Ralf Jung
67b9d7d184
rename ptr::from_exposed_addr -> ptr::with_exposed_provenance
2024-03-23 13:18:33 +01:00
Esteban Küber
6b24fdf811
Provide structured suggestion for unconstrained generic constant
...
```
error: unconstrained generic constant
--> $DIR/const-argument-if-length.rs:18:10
|
LL | pad: [u8; is_zst::<T>()],
| ^^^^^^^^^^^^^^^^^^^
|
help: try adding a `where` bound
|
LL | pub struct AtLeastByte<T: ?Sized> where [(); is_zst::<T>()]: {
| ++++++++++++++++++++++++++
```
Detect when the constant expression isn't `usize` and suggest casting:
```
error: unconstrained generic constant
--> f300.rs:6:10
|
6 | bb::<{!N}>();
| ^^^^
-Ztrack-diagnostics: created at compiler/rustc_trait_selection/src/traits/error_reporting/type_err_ctxt_ext.rs:3539:36
|
help: try adding a `where` bound
|
5 | fn b<const N: bool>() where [(); {!N} as usize]: {
| ++++++++++++++++++++++++++
```
Fix #122395 .
2024-03-21 00:03:59 +00:00
Ralf Jung
48f2f0d725
preserve span when evaluating mir::ConstOperand
2024-03-14 21:55:07 +01:00
Matthias Krüger
6a4dd19ade
Rollup merge of #122287 - RalfJung:simd-static-assert, r=pnkfelix
...
add test ensuring simd codegen checks don't run when a static assertion failed
stdarch relies on this to ensure that SIMD indices are in bounds.
I would love to know why this works, but I can't figure out where codegen decides to not codegen a function if a required-const does not evaluate. `@oli-obk` `@bjorn3` do you have any idea?
2024-03-14 15:44:33 +01:00
Alex Crichton
cf6d6050f7
Update test directives for wasm32-wasip1
...
* The WASI targets deal with the `main` symbol a bit differently than
native so some `codegen` and `assembly` tests have been ignored.
* All `ignore-emscripten` directives have been updated to
`ignore-wasm32` to be more clear that all wasm targets are ignored and
it's not just Emscripten.
* Most `ignore-wasm32-bare` directives are now gone.
* Some ignore directives for wasm were switched to `needs-unwind`
instead.
* Many `ignore-wasm32*` directives are removed as the tests work with
WASI as opposed to `wasm32-unknown-unknown`.
2024-03-11 09:36:35 -07:00
Ralf Jung
39db6a0972
add test ensuring simd codegen checks don't run when a static assertion failed
2024-03-10 12:37:10 +01:00
Ralf Jung
c1d0e489e5
fix use of platform_intrinsics in tests
2024-02-25 08:15:44 +01:00
Ralf Jung
8e0dd993d6
check that simd_insert/extract indices are in-bounds
2024-02-23 19:43:59 +01:00
bors
52dba5ffe7
Auto merge of #121225 - RalfJung:simd-extract-insert-const-idx, r=oli-obk,Amanieu
...
require simd_insert, simd_extract indices to be constants
As discussed in https://github.com/rust-lang/rust/issues/77477 (see in particular [here](https://github.com/rust-lang/rust/issues/77477#issuecomment-703149102 )). This PR doesn't touch codegen yet -- the first step is to ensure that the indices are always constants; the second step is to then make use of this fact in backends.
Blocked on https://github.com/rust-lang/stdarch/pull/1530 propagating to the rustc repo.
2024-02-22 09:59:41 +00:00
Ralf Jung
07b6240947
remove simd_reduce_{min,max}_nanless
2024-02-21 20:50:47 +01:00
Ralf Jung
90f5fed05b
update tests
2024-02-20 07:58:18 +01:00
许杰友 Jieyou Xu (Joe)
ec2cc761bc
[AUTO-GENERATED] Migrate ui tests from //
to //@
directives
2024-02-16 20:02:50 +00:00
Oli Scherer
5f6390f947
Continue compilation after check_mod_type_wf errors
2024-02-14 11:00:30 +00:00
Matthew Jasper
982b49494e
Remove revisions for THIR unsafeck
...
This is to make the diff when stabilizing it easier to review.
2024-01-05 09:30:27 +00:00
bors
8b1ba11cb1
Auto merge of #117116 - calebzulawski:repr-simd-packed, r=workingjubilee
...
Implement repr(packed) for repr(simd)
This allows creating vectors with non-power-of-2 lengths that do not have padding. See rust-lang/portable-simd#319
2023-12-11 08:07:20 +00:00
Jakub Okoński
97ae5095f5
Add simd_masked_{load,store} platform-intrinsics
...
This maps to the LLVM intrinsics: llvm.masked.load and llvm.masked.store
2023-12-09 12:36:08 +01:00
Caleb Zulawski
20413b1947
Add test using non-power-of-two vector
2023-12-02 10:53:19 -05:00
Caleb Zulawski
329412dad3
Implement repr(packed) for repr(simd)
2023-12-02 10:53:19 -05:00
Caleb Zulawski
4d9607869a
Update std::simd usage and test outputs
2023-11-26 09:02:25 -05:00
Nilstrieb
41e8d152dc
Show number in error message even for one error
...
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-11-24 19:15:52 +01:00
Esteban Küber
ec50f1c90b
When failing to import core
, suggest std
2023-11-22 19:30:47 +00:00
Oli Scherer
beaf46f7e5
Work around the fact that check_mod_type_wf
may spuriously return ErrorGuaranteed
, even if that error is only emitted by check_modwitem_types
2023-10-25 12:04:54 +00:00
Oli Scherer
1a01e57d27
Prototype using const generic for simd_shuffle IDX array
2023-09-18 15:10:28 +00:00
Oli Scherer
4457ef2c6d
Forbid old-style simd_shuffleN
intrinsics
2023-08-03 09:29:00 +00:00
Caleb Zulawski
77ed437de8
Fix simd_bswap for i8/u8
2023-07-30 15:40:32 -04:00
Caleb Zulawski
4709ca2bed
Format test
2023-07-28 00:09:04 -04:00
Caleb Zulawski
4c02b4cf4c
Add SIMD bitreverse, ctlz, cttz intrinsics
2023-07-27 23:53:45 -04:00
Caleb Zulawski
3ea0e6e3fb
Add simd_bswap intrinsic
2023-07-27 23:04:14 -04:00
Matthias Krüger
8c17e0701e
Rollup merge of #113529 - oli-obk:simd_shuffle_evaluated, r=wesleywiser
...
Permit pre-evaluated constants in simd_shuffle
fixes https://github.com/rust-lang/rust/issues/113500
2023-07-20 17:19:32 +02:00
Oli Scherer
c7428d5052
Monomorphize constants before inspecting them
2023-07-20 08:53:09 +00:00
chenx97
c6e03cd951
support for mips64r6 as a target_arch value
2023-07-18 18:58:18 +08:00
Oli Scherer
9e5a67e57f
Permit pre-evaluated constants in simd_shuffle
2023-07-18 08:13:55 +00:00
Luqman Aden
7b1eedaae8
Switch test back to run-pass.
2023-05-05 14:58:52 -07:00
Luqman Aden
2942121736
Update test location.
2023-05-05 14:43:20 -07:00
Matthew Jasper
c17a705758
Add test for new delayed bug code path
2023-04-08 22:14:57 +01:00
Ben Kimock
9c4696b940
Fix unintentional UB in SIMD tests
2023-02-12 20:18:48 -05:00
Michael Goulet
716ea5f19c
Fix use suggestion span
2023-01-17 03:06:38 +00:00
Albert Larsan
cf2dff2b1e
Move /src/test to /tests
2023-01-11 09:32:08 +00:00