[PATCH] D68531: [WebAssembly] Add builtin and intrinsic for v8x16.swizzle

Thomas Lively via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 8 11:16:34 PDT 2019


tlively marked an inline comment as done.
tlively added a comment.

In D68531#1699855 <https://reviews.llvm.org/D68531#1699855>, @aheejin wrote:

> > LLVM produces a poison value if the dynamic swizzle indices are greater than the vector size, but the WebAssembly instruction sets the corresponding output lane to zero.
>
> Where do we set those undef or poison lanes to zero?


We don't do that in the toolchain. It's the runtime semantics implemented in engines that set the output lanes to zero.



================
Comment at: clang/include/clang/Basic/BuiltinsWebAssembly.def:63
 // SIMD builtins
+TARGET_BUILTIN(__builtin_wasm_swizzle_v8x16, "V16cV16cV16c", "nc", "unimplemented-simd128")
+
----------------
aheejin wrote:
> Is the second indices vector always v8x16 too?
Yes, that's the only version of swizzling we have for now.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D68531





More information about the llvm-commits mailing list