[PATCH] D22686: [WASM] SIMD128 support.

João Porto via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 27 14:18:01 PDT 2016


jpp marked an inline comment as done.

================
Comment at: lib/Target/WebAssembly/WebAssemblyInstrInfo.td:113
@@ -106,1 +112,3 @@
 defm : ARGUMENT<F64>;
+defm : SIMD_ARGUMENT<v16i8>;
+defm : SIMD_ARGUMENT<v8i16>;
----------------
dschuff wrote:
> Oh, one other thing that's a little unclear to me. Why do we need ARGUMENT_v16i8 et al instead of just ARGUMENT_V128? I guess it's because it corresponds to MVTs which can be vectors, instead of register classes? Register classes would seem to make more sense (and the other ARGUMENT multiclass is based on WebAssemblyRegClass?)
I tried doing that before, but it upsets tablegen

llvm-tblgen: /usr/local/google/home/jpp/work/llvm/llvm/utils/TableGen/CodeGenDAGPatterns.h:74: llvm::MVT::SimpleValueType llvm::EEVT::TypeSet::getConcrete() const: Assertion `isConcrete() && "Type isn't concrete yet"' failed.

As far as I can tell, the problem here is that the V128 register class accommodates multiple MVT, while the other register classes deal with single MVTs.


Repository:
  rL LLVM

https://reviews.llvm.org/D22686





More information about the llvm-commits mailing list