[PATCH] D88773: Reland "[WebAssembly] Emulate v128.const efficiently""

Thomas Lively via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 2 21:05:26 PDT 2020


tlively added a comment.

Thanks all for your help diagnosing and fixing these issues! I decided to go with the bit twiddling solution rather than the corrected type punning solution because it seems simpler overall to not have to think about endianness.



================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp:1589-1602
+    std::array<uint64_t, 2> I64s({{0, 0}});
+    std::array<uint64_t, 2> ConstLaneMasks({{0, 0}});
+    size_t LaneBits = 128 / Lanes;
+    size_t HalfLanes = Lanes / 2;
+    for (size_t I = 0; I < Lanes; ++I) {
+      const SDValue &Lane = Op.getOperand(I);
+      if (IsConstant(Lane)) {
----------------
This is the only part that has changed from the previous revision.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88773



More information about the llvm-commits mailing list