This is an archive of the discontinued LLVM Phabricator instance.

[WebAssembly] Renumber SIMD opcodes
ClosedPublic

Authored by tlively on Apr 30 2020, 6:18 PM.

Details

Summary

As described in https://github.com/WebAssembly/simd/pull/209. This is
the final reorganization of the SIMD opcode space before
standardization. It has been landed in concert with corresponding
changes in other projects in the WebAssembly SIMD ecosystem.

Diff Detail

Event Timeline

tlively created this revision.Apr 30 2020, 6:18 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 30 2020, 6:18 PM
aheejin accepted this revision.May 1 2020, 8:49 AM
aheejin added inline comments.
llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
186

So these have been decided not be included in the spec?

llvm/test/CodeGen/WebAssembly/simd-conversions.ll
88

We don't need this anymore?

llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll
479

Ditto

This revision is now accepted and ready to land.May 1 2020, 8:49 AM
tlively updated this revision to Diff 261532.May 1 2020, 1:53 PM
  • Remove i64x2 conversion ops in clang as well
Herald added a project: Restricted Project. · View Herald TranscriptMay 1 2020, 1:53 PM
Herald added a subscriber: cfe-commits. · View Herald Transcript
tlively marked 3 inline comments as done.May 1 2020, 2:33 PM
tlively added inline comments.
llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
186

That's correct

llvm/test/CodeGen/WebAssembly/simd-conversions.ll
88

No, these instructions have been removed because they are no longer in the proposal and there is not a great set of opcodes to assign them to. These test functions are still here to test that the compiler doesn't crash, but their contents aren't important to test here. The instructions get scalarized and our normal complicated lowering of fp-to-int gets applied, so we end up with a very large amount of code in this case.

llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll
479

These LLVM intrinsics are no longer supported, so the entire function is removed.

This revision was automatically updated to reflect the committed changes.