Skip to content

Commit fdfbf7c

Browse files
committed
1 parent 656312e commit fdfbf7c

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

beginners-guide.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ SIMD has a few special vocabulary terms you should know:
3333

3434
When using SIMD, you should be familiar with the CPU feature set that you're targeting.
3535

36-
On `arm` and `aarch64` it's fairly simple. There's just one CPU feature that controls if SIMD is available: `neon` (or "NEON", all caps, as the ARM docs often put it). Neon registers are 128-bit, but they can also operate as 64-bit (the high lanes are just zeroed out).
36+
On `arm` and `aarch64` it's fairly simple. There's just one CPU feature that controls if SIMD is available: `neon` (or "NEON", all caps, as the ARM docs often put it). Neon registers can be used as 64-bit or 128-bit. When doing 128-bit operations it just uses two 64-bit registers as a single 128-bit register.
3737

3838
> By default, the `aarch64`, `arm`, and `thumb` Rust targets generally do not enable `neon` unless it's in the target string.
3939
@@ -42,6 +42,8 @@ On `x86` and `x86_64` it's slightly more complicated. The SIMD support is split
4242
* 256-bit (mostly): `avx`, `avx2`, `fma`
4343
* 512-bit (mostly): a *wide* range of `avx512` variations
4444

45+
The list notes the bit widths available at each feature level, though the operations of the more advanced features can generally be used with the smaller register sizes as well. For example, new operations introduced in `avx` generally have a 128-bit form as well as a 256-bit form. This means that even if you only do 128-bit work you can still benefit from the later feature levels.
46+
4547
> By default, the `i686` and `x86_64` Rust targets enable `sse` and `sse2`.
4648
4749
### Selecting Additional Target Features

0 commit comments

Comments
 (0)