[PATCH] D150114: [Headers][doc] Add "add/sub/mul" intrinsic descriptions to avx2intrin.h

Craig Topper via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue May 23 11:23:09 PDT 2023


craig.topper added inline comments.


================
Comment at: clang/lib/Headers/avx2intrin.h:456
+///   j := i*128
+///   result[j+31:j] := __a[j+63:j+32] - __a[j+31:j]
+///   result[j+63:j+32] := __a[j+127:j+96] - __a[j+95:j+64]
----------------
Intel intrinsics guide says

```
dst[31:0] := a[31:0] - a[63:32]
dst[63:32] := a[95:64] - a[127:96]
dst[95:64] := b[31:0] - b[63:32]
dst[127:96] := b[95:64] - b[127:96]
dst[159:128] := a[159:128] - a[191:160]
dst[191:160] := a[223:192] - a[255:224]
dst[223:192] := b[159:128] - b[191:160]
dst[255:224] := b[223:192] - b[255:224]
dst[MAX:256] := 0
```

So I think the operands are in the wrong order here?


================
Comment at: clang/lib/Headers/avx2intrin.h:488
+///   j := i*128
+///   result[j+15:j] := SATURATE16(__a[j+31:j+16] - __a[j+15:j])
+///   result[j+31:j+16] := SATURATE16(__a[j+63:j+48] - __a[j+47:j+32])
----------------
Operands are reversed?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D150114/new/

https://reviews.llvm.org/D150114



More information about the cfe-commits mailing list