From 05834f7e51e64ecb17552069e3c7cf9a4e845687 Mon Sep 17 00:00:00 2001 From: Jan Wassenberg Date: Tue, 7 May 2024 06:37:18 -0700 Subject: [PATCH] clarify documentation for InterleavedOdd/Even: no block crossing PiperOrigin-RevId: 631404457 --- g3doc/quick_reference.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/g3doc/quick_reference.md b/g3doc/quick_reference.md index c6c62394a1..56fd20f419 100644 --- a/g3doc/quick_reference.md +++ b/g3doc/quick_reference.md @@ -2001,24 +2001,24 @@ Ops in this section are only available if `HWY_TARGET != HWY_SCALAR`: alternating lanes from the upper halves of `a` and `b` (`a[N/2]` in the least-significant lane). `D` is `DFromV`. -* V **InterleaveEven**([D, ] V a, V b): returns *blocks* with - alternating lanes from the even lanes of `a` and `b` (`a[0]` in the - least-significant lane, followed by `b[0]`, followed by `a[2]`, followed by - `b[2]`, and so on). The optional `D` (provided for consistency with - `InterleaveOdd`) is `DFromV`. +* V **InterleaveEven**([D, ] V a, V b): returns alternating lanes + from the even lanes of `a` and `b` (`a[0]` in the least-significant lane, + followed by `b[0]`, followed by `a[2]`, followed by `b[2]`, and so on). The + optional `D` (provided for consistency with `InterleaveOdd`) is `DFromV`. + Note that no lanes move across block boundaries. `InterleaveEven(a, b)` and `InterleaveEven(d, a, b)` are both equivalent to `OddEven(DupEven(b), a)`, but `InterleaveEven(a, b)` is usually more efficient than `OddEven(DupEven(b), a)`. -* V **InterleaveOdd**(D, V a, V b): returns *blocks* with - alternating lanes from the odd lanes of `a` and `b` (`a[1]` in the - least-significant lane, followed by `b[1]`, followed by `a[3]`, followed by - `b[3]`, and so on). `D` is `DFromV`. +* V **InterleaveOdd**(D, V a, V b): returns alternating lanes + from the odd lanes of `a` and `b` (`a[1]` in the least-significant lane, + followed by `b[1]`, followed by `a[3]`, followed by `b[3]`, and so on). `D` + is `DFromV`. Note that no lanes move across block boundaries. `InterleaveOdd(d, a, b)` is equivalent to `OddEven(b, DupOdd(a))`, but - `InterleaveOdd(d, a, b)` is usually more efficient than - `OddEven(b, DupOdd(a))`. + `InterleaveOdd(d, a, b)` is usually more efficient than `OddEven(b, + DupOdd(a))`. #### Zip