[PATCH] D98457: [WebAssembly] Remove unimplemented-simd target features
Thomas Lively via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 12 11:52:09 PST 2021
tlively added inline comments.
================
Comment at: clang/include/clang/Basic/BuiltinsWebAssembly.def:191
-TARGET_BUILTIN(__builtin_wasm_qfma_f32x4, "V4fV4fV4fV4f", "nc", "unimplemented-simd128")
-TARGET_BUILTIN(__builtin_wasm_qfms_f32x4, "V4fV4fV4fV4f", "nc", "unimplemented-simd128")
-TARGET_BUILTIN(__builtin_wasm_qfma_f64x2, "V2dV2dV2dV2d", "nc", "unimplemented-simd128")
-TARGET_BUILTIN(__builtin_wasm_qfms_f64x2, "V2dV2dV2dV2d", "nc", "unimplemented-simd128")
+TARGET_BUILTIN(__builtin_wasm_qfma_f32x4, "V4fV4fV4fV4f", "nc", "simd128")
+TARGET_BUILTIN(__builtin_wasm_qfms_f32x4, "V4fV4fV4fV4f", "nc", "simd128")
----------------
dschuff wrote:
> is QFMA actually in MVP simd? I thought it was non-deterministic?
No, as you discovered, it's removed in the next patch. I kind of ended up with these patches in the wrong order, but I think it should be ok.
================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp:1712
};
- } else if (NumConstantLanes >= NumSplatLanes &&
- Subtarget->hasUnimplementedSIMD128()) {
- // If we support v128.const, emit it directly
+ } else if (NumConstantLanes >= NumSplatLanes) {
SmallVector<SDValue, 16> ConstLanes;
----------------
dschuff wrote:
> out of curiosity, are there any cases where a splat could be smaller than a v128 const, since the consts are pretty big?
Yes, for sure. In fact, this code used to find the const lowering that resulted in the fewest bytes emitted. Our users much prefer to have the fewest instructions emitted, though, since this lowering is often critical for performance.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D98457/new/
https://reviews.llvm.org/D98457
More information about the llvm-commits
mailing list