[WebAssembly] Add prototype relaxed SIMD fma/fms instructions
authorThomas Lively <tlively@google.com>
Thu, 23 Sep 2021 18:01:36 +0000 (11:01 -0700)
committerThomas Lively <tlively@google.com>
Thu, 23 Sep 2021 18:01:36 +0000 (11:01 -0700)
commit2f519825ba56cc2377ef9fbf1514944215ed9d0d
treedaf473770998a55677e3e4e0c4b8b74a0665f3a2
parentc22329972f02f9d51e2f9ea54d9075a4a808ffde
[WebAssembly] Add prototype relaxed SIMD fma/fms instructions

Add experimental clang builtins, LLVM intrinsics, and backend definitions for
the new {f32x4,f64x2}.{fma,fms} instructions in the relaxed SIMD proposal:
https://github.com/WebAssembly/relaxed-simd/blob/main/proposals/relaxed-simd/Overview.md.
Do not allow these instructions to be selected without explicit user opt-in.

Differential Revision: https://reviews.llvm.org/D110295
clang/include/clang/Basic/BuiltinsWebAssembly.def
clang/lib/CodeGen/CGBuiltin.cpp
clang/test/CodeGen/builtins-wasm.c
llvm/include/llvm/IR/IntrinsicsWebAssembly.td
llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll
llvm/test/MC/WebAssembly/simd-encodings.s