[clang] [llvm] [WebAssembly] Implement prototype f32.store_f16 instruction. (PR #91545)

Heejin Ahn via cfe-commits cfe-commits at lists.llvm.org
Thu May 9 11:25:48 PDT 2024


================
@@ -192,6 +192,7 @@ TARGET_BUILTIN(__builtin_wasm_relaxed_dot_bf16x8_add_f32_f32x4, "V4fV8UsV8UsV4f"
 
 // Half-Precision (fp16)
 TARGET_BUILTIN(__builtin_wasm_loadf16_f32, "fh*", "nU", "half-precision")
+TARGET_BUILTIN(__builtin_wasm_storef16_f32, "vfh*", "nU", "half-precision")
----------------
aheejin wrote:

I'm not exactly sure about the definition, but Builtins.def says it should be in sync with `Builtin::Context` class:
https://github.com/llvm/llvm-project/blob/b942c24845a39e6161c8623b1efc4e2083d879e9/clang/include/clang/Basic/Builtins.def#L67-L68

And `Builtin::Context` says this:
https://github.com/llvm/llvm-project/blob/b942c24845a39e6161c8623b1efc4e2083d879e9/clang/include/clang/Basic/Builtins.h#L115-L118

So I guess stores cannot be considered as pure, because they have side effects.

https://github.com/llvm/llvm-project/pull/91545


More information about the cfe-commits mailing list