@@ -71,7 +71,7 @@ pub unsafe fn simd_rem<T>(_lhs: T, _rhs: T) -> T;
71
71
///
72
72
/// Shifts `lhs` left by `rhs`, shifting in sign bits for signed types.
73
73
///
74
- /// `T` must be a vector of integer primitive types .
74
+ /// `T` must be a vector of integers .
75
75
///
76
76
/// # Safety
77
77
///
@@ -82,7 +82,7 @@ pub unsafe fn simd_shl<T>(_lhs: T, _rhs: T) -> T;
82
82
83
83
/// Shifts vector right elementwise, with UB on overflow.
84
84
///
85
- /// `T` must be a vector of integer primitive types .
85
+ /// `T` must be a vector of integers .
86
86
///
87
87
/// Shifts `lhs` right by `rhs`, shifting in sign bits for signed types.
88
88
///
@@ -95,21 +95,21 @@ pub unsafe fn simd_shr<T>(_lhs: T, _rhs: T) -> T;
95
95
96
96
/// "Ands" vectors elementwise.
97
97
///
98
- /// `T` must be a vector of integer primitive types .
98
+ /// `T` must be a vector of integers .
99
99
#[ rustc_intrinsic]
100
100
#[ rustc_nounwind]
101
101
pub unsafe fn simd_and < T > ( _x : T , _y : T ) -> T ;
102
102
103
103
/// "Ors" vectors elementwise.
104
104
///
105
- /// `T` must be a vector of integer primitive types .
105
+ /// `T` must be a vector of integers .
106
106
#[ rustc_intrinsic]
107
107
#[ rustc_nounwind]
108
108
pub unsafe fn simd_or < T > ( _x : T , _y : T ) -> T ;
109
109
110
110
/// "Exclusive ors" vectors elementwise.
111
111
///
112
- /// `T` must be a vector of integer primitive types .
112
+ /// `T` must be a vector of integers .
113
113
#[ rustc_intrinsic]
114
114
#[ rustc_nounwind]
115
115
pub unsafe fn simd_xor < T > ( _x : T , _y : T ) -> T ;
@@ -151,7 +151,7 @@ pub unsafe fn simd_as<T, U>(_x: T) -> U;
151
151
152
152
/// Negates a vector elementwise.
153
153
///
154
- /// `T` must be a vector of integer or floating-point primitive types .
154
+ /// `T` must be a vector of integers or floats .
155
155
///
156
156
/// Rust panics for `-<int>::Min` due to overflow, but it is not UB with this intrinsic.
157
157
#[ rustc_intrinsic]
@@ -185,7 +185,7 @@ pub unsafe fn simd_fmax<T>(_x: T, _y: T) -> T;
185
185
186
186
/// Tests elementwise equality of two vectors.
187
187
///
188
- /// `T` must be a vector of integer or floating-point primitive types .
188
+ /// `T` must be a vector of integers or floats .
189
189
///
190
190
/// `U` must be a vector of integers with the same number of elements and element size as `T`.
191
191
///
@@ -196,7 +196,7 @@ pub unsafe fn simd_eq<T, U>(_x: T, _y: T) -> U;
196
196
197
197
/// Tests elementwise inequality equality of two vectors.
198
198
///
199
- /// `T` must be a vector of integer or floating-point primitive types .
199
+ /// `T` must be a vector of integers or floats .
200
200
///
201
201
/// `U` must be a vector of integers with the same number of elements and element size as `T`.
202
202
///
@@ -207,7 +207,7 @@ pub unsafe fn simd_ne<T, U>(_x: T, _y: T) -> U;
207
207
208
208
/// Tests if `x` is less than `y`, elementwise.
209
209
///
210
- /// `T` must be a vector of integer or floating-point primitive types .
210
+ /// `T` must be a vector of integers or floats .
211
211
///
212
212
/// `U` must be a vector of integers with the same number of elements and element size as `T`.
213
213
///
@@ -218,7 +218,7 @@ pub unsafe fn simd_lt<T, U>(_x: T, _y: T) -> U;
218
218
219
219
/// Tests if `x` is less than or equal to `y`, elementwise.
220
220
///
221
- /// `T` must be a vector of integer or floating-point primitive types .
221
+ /// `T` must be a vector of integers or floats .
222
222
///
223
223
/// `U` must be a vector of integers with the same number of elements and element size as `T`.
224
224
///
@@ -229,7 +229,7 @@ pub unsafe fn simd_le<T, U>(_x: T, _y: T) -> U;
229
229
230
230
/// Tests if `x` is greater than `y`, elementwise.
231
231
///
232
- /// `T` must be a vector of integer or floating-point primitive types .
232
+ /// `T` must be a vector of integers or floats .
233
233
///
234
234
/// `U` must be a vector of integers with the same number of elements and element size as `T`.
235
235
///
@@ -240,7 +240,7 @@ pub unsafe fn simd_gt<T, U>(_x: T, _y: T) -> U;
240
240
241
241
/// Tests if `x` is greater than or equal to `y`, elementwise.
242
242
///
243
- /// `T` must be a vector of integer or floating-point primitive types .
243
+ /// `T` must be a vector of integers or floats .
244
244
///
245
245
/// `U` must be a vector of integers with the same number of elements and element size as `T`.
246
246
///
@@ -271,7 +271,7 @@ pub unsafe fn simd_shuffle<T, U, V>(_x: T, _y: T, _idx: U) -> V;
271
271
///
272
272
/// `U` must be a vector of pointers to the element type of `T`, with the same length as `T`.
273
273
///
274
- /// `V` must be a vector of integers with the same length as `T` (but any element size).
274
+ /// `V` must be a vector of signed integers with the same length as `T` (but any element size).
275
275
///
276
276
/// For each pointer in `ptr`, if the corresponding value in `mask` is `!0`, read the pointer.
277
277
/// Otherwise if the corresponding value in `mask` is `0`, return the corresponding value from
@@ -292,7 +292,7 @@ pub unsafe fn simd_gather<T, U, V>(_val: T, _ptr: U, _mask: V) -> T;
292
292
///
293
293
/// `U` must be a vector of pointers to the element type of `T`, with the same length as `T`.
294
294
///
295
- /// `V` must be a vector of integers with the same length as `T` (but any element size).
295
+ /// `V` must be a vector of signed integers with the same length as `T` (but any element size).
296
296
///
297
297
/// For each pointer in `ptr`, if the corresponding value in `mask` is `!0`, write the
298
298
/// corresponding value in `val` to the pointer.
@@ -316,7 +316,7 @@ pub unsafe fn simd_scatter<T, U, V>(_val: T, _ptr: U, _mask: V);
316
316
///
317
317
/// `U` must be a pointer to the element type of `T`
318
318
///
319
- /// `V` must be a vector of integers with the same length as `T` (but any element size).
319
+ /// `V` must be a vector of signed integers with the same length as `T` (but any element size).
320
320
///
321
321
/// For each element, if the corresponding value in `mask` is `!0`, read the corresponding
322
322
/// pointer offset from `ptr`.
@@ -339,7 +339,7 @@ pub unsafe fn simd_masked_load<V, U, T>(_mask: V, _ptr: U, _val: T) -> T;
339
339
///
340
340
/// `U` must be a pointer to the element type of `T`
341
341
///
342
- /// `V` must be a vector of integers with the same length as `T` (but any element size).
342
+ /// `V` must be a vector of signed integers with the same length as `T` (but any element size).
343
343
///
344
344
/// For each element, if the corresponding value in `mask` is `!0`, write the corresponding
345
345
/// value in `val` to the pointer offset from `ptr`.
@@ -373,7 +373,7 @@ pub unsafe fn simd_saturating_sub<T>(_lhs: T, _rhs: T) -> T;
373
373
374
374
/// Adds elements within a vector from left to right.
375
375
///
376
- /// `T` must be a vector of integer or floating-point primitive types .
376
+ /// `T` must be a vector of integers or floats .
377
377
///
378
378
/// `U` must be the element type of `T`.
379
379
///
@@ -385,7 +385,7 @@ pub unsafe fn simd_reduce_add_ordered<T, U>(_x: T, _y: U) -> U;
385
385
/// Adds elements within a vector in arbitrary order. May also be re-associated with
386
386
/// unordered additions on the inputs/outputs.
387
387
///
388
- /// `T` must be a vector of integer or floating-point primitive types .
388
+ /// `T` must be a vector of integers or floats .
389
389
///
390
390
/// `U` must be the element type of `T`.
391
391
#[ rustc_intrinsic]
@@ -394,7 +394,7 @@ pub unsafe fn simd_reduce_add_unordered<T, U>(_x: T) -> U;
394
394
395
395
/// Multiplies elements within a vector from left to right.
396
396
///
397
- /// `T` must be a vector of integer or floating-point primitive types .
397
+ /// `T` must be a vector of integers or floats .
398
398
///
399
399
/// `U` must be the element type of `T`.
400
400
///
@@ -406,7 +406,7 @@ pub unsafe fn simd_reduce_mul_ordered<T, U>(_x: T, _y: U) -> U;
406
406
/// Multiplies elements within a vector in arbitrary order. May also be re-associated with
407
407
/// unordered additions on the inputs/outputs.
408
408
///
409
- /// `T` must be a vector of integer or floating-point primitive types .
409
+ /// `T` must be a vector of integers or floats .
410
410
///
411
411
/// `U` must be the element type of `T`.
412
412
#[ rustc_intrinsic]
@@ -435,7 +435,7 @@ pub unsafe fn simd_reduce_any<T>(_x: T) -> bool;
435
435
436
436
/// Returns the maximum element of a vector.
437
437
///
438
- /// `T` must be a vector of integer or floating-point primitive types .
438
+ /// `T` must be a vector of integers or floats .
439
439
///
440
440
/// `U` must be the element type of `T`.
441
441
///
@@ -446,7 +446,7 @@ pub unsafe fn simd_reduce_max<T, U>(_x: T) -> U;
446
446
447
447
/// Returns the minimum element of a vector.
448
448
///
449
- /// `T` must be a vector of integer or floating-point primitive types .
449
+ /// `T` must be a vector of integers or floats .
450
450
///
451
451
/// `U` must be the element type of `T`.
452
452
///
@@ -457,7 +457,7 @@ pub unsafe fn simd_reduce_min<T, U>(_x: T) -> U;
457
457
458
458
/// Logical "ands" all elements together.
459
459
///
460
- /// `T` must be a vector of integer or floating-point primitive types .
460
+ /// `T` must be a vector of integers or floats .
461
461
///
462
462
/// `U` must be the element type of `T`.
463
463
#[ rustc_intrinsic]
@@ -466,7 +466,7 @@ pub unsafe fn simd_reduce_and<T, U>(_x: T) -> U;
466
466
467
467
/// Logical "ors" all elements together.
468
468
///
469
- /// `T` must be a vector of integer or floating-point primitive types .
469
+ /// `T` must be a vector of integers or floats .
470
470
///
471
471
/// `U` must be the element type of `T`.
472
472
#[ rustc_intrinsic]
@@ -475,7 +475,7 @@ pub unsafe fn simd_reduce_or<T, U>(_x: T) -> U;
475
475
476
476
/// Logical "exclusive ors" all elements together.
477
477
///
478
- /// `T` must be a vector of integer or floating-point primitive types .
478
+ /// `T` must be a vector of integers or floats .
479
479
///
480
480
/// `U` must be the element type of `T`.
481
481
#[ rustc_intrinsic]
@@ -521,9 +521,9 @@ pub unsafe fn simd_bitmask<T, U>(_x: T) -> U;
521
521
522
522
/// Selects elements from a mask.
523
523
///
524
- /// `M ` must be an integer vector.
524
+ /// `T ` must be a vector.
525
525
///
526
- /// `T ` must be a vector with the same number of elements as `M` .
526
+ /// `M ` must be a signed integer vector with the same length as `T` (but any element size) .
527
527
///
528
528
/// For each element, if the corresponding value in `mask` is `!0`, select the element from
529
529
/// `if_true`. If the corresponding value in `mask` is `0`, select the element from
0 commit comments