Skip to content

Commit 1762b58

Browse files
committed
incorporate latest rkruppe feedback
1 parent 3bf5d2c commit 1762b58

File tree

1 file changed

+13
-19
lines changed

1 file changed

+13
-19
lines changed

text/0000-ppv.md

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -551,8 +551,8 @@ implementations:
551551
##### Integer vector semantics
552552

553553
The behavior of these operations for integer vectors is the same as that of the
554-
scalar integer types. That is: `panic!` on both overflow and division by zero in
555-
debug mode.
554+
scalar integer types. That is: `panic!` on both overflow and division by zero if
555+
`-C overflow-checks=on`.
556556

557557
##### Floating-point semantics
558558

@@ -600,13 +600,7 @@ pub fn max(self, other: Self) -> Self;
600600
##### Floating-point semantics
601601

602602
The floating-point semantics follow the semantics of `min` and `max` for the
603-
scalar `f32` and `f64` types. That is:
604-
605-
If either operand is a `NaN`, returns the other non-NaN operand. Returns `NaN`
606-
only if both operands are `NaN`. If the operands compare equal, returns a value
607-
that compares equal to both operands. This means that `min(+/-0.0, +/-0.0)`
608-
could return either `-0.0` or `0.0`. Otherwise, `min` and `max` return the
609-
smallest and largest operand, respectively.
603+
scalar `f32` and `f64` types.
610604

611605
#### Arithmetic reductions
612606

@@ -1287,13 +1281,13 @@ that have withstood the test of time, and it adapts these designs to Rust.
12871281
# Unresolved questions
12881282
[unresolved]: #unresolved-questions
12891283

1290-
### Interaction with scalable vectors
1284+
### Interaction with Cray vectors
12911285

12921286
The vector types proposed in this RFC are packed, that is, their size is fixed
12931287
at compile-time.
12941288

12951289
Many modern architectures support vector operations of run-time size, often
1296-
called scalable Vectors or scalable vectors. These include, amongst others,
1290+
called Cray Vectors or scalable vectors. These include, amongst others,
12971291
NecSX, ARM SVE, and RISC-V's Vector Extension Proposal. These architectures have
12981292
traditionally relied on auto-vectorization combined with support for explicit
12991293
vectorization annotations, but newer architectures like ARM SVE introduce
@@ -1337,24 +1331,24 @@ fn add_constant(dst: &mut [f64], src: &[f64], c: f64) {
13371331
The RISC-V vector extension proposal introduces a model similar in spirit to ARM
13381332
SVE. These extensions are, however, not official yet, and it is currently
13391333
unknown whether GCC and LLVM will expose explicit intrinsics for them. It would
1340-
not be surprising if they do, and it would not be surprising if similar scalable
1334+
not be surprising if they do, and it would not be surprising if similar Cray
13411335
vector extensions are introduced in other architectures in the future.
13421336

1343-
The main differences between scalable and portable vectors are that:
1337+
The main differences between Cray vectors and portable vectors are that:
13441338

1345-
* the number of lanes of scalable vectors is a run-time dynamic value
1346-
* the scalable vector "objects" are like magical compiler token values
1339+
* the number of lanes of Cray vectors is a run-time dynamic value
1340+
* the Cray vector "objects" are like magical compiler token values
13471341
* the induction loop variable must be incremented by the dynamic number of lanes
13481342
of the vector type
1349-
* most scalable vector operations require a mask indicating which elements of
1343+
* most Cray vector operations require a mask indicating which elements of
13501344
the vector the operation applies to
13511345

1352-
These differences will probably force the API of scalable vector types to be
1346+
These differences will probably force the API of Cray vector types to be
13531347
slightly different than that of packed vector types.
13541348

1355-
The current RFC, therefore, assumes no interaction with scalable vector types.
1349+
The current RFC, therefore, assumes no interaction with Cray vector types.
13561350

1357-
It does not prevent for portable scalable vector types to be added to Rust in
1351+
It does not prevent for portable Cray vector types to be added to Rust in
13581352
the future via an orthogonal API, nor it does prevent adding a way to interact
13591353
between both of them (e.g. through memory). But at this point in time whether
13601354
these things are possible are open research problems.

0 commit comments

Comments
 (0)