Closed Bug 1778751 Opened 3 years ago Closed 2 years ago

Implement BFloat16 product instruction

Categories

(Core :: JavaScript: WebAssembly, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
107 Branch
Tracking Status
firefox107 --- fixed

People

(Reporter: yury, Assigned: yury)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

See https://github.com/WebAssembly/relaxed-simd/issues/77

Instruction name: f32x4.relaxed_dot_bf16x8_add_f32x4, and its code is reserved for 0x114.

Since we have no concrete plans for AVX512 support and had not consider ARM64 extensions yet: the first implementation will be just optimized version of reference lowering of:

    y = f32x4.relaxed_dot_bf16x8_add_f32x4(a, b, c):
        const v128_t a_lo = wasm_i32x4_shl(a, 16)
        const v128_t b_lo = wasm_i32x4_shl(b, 16)
        const v128_t a_hi = wasm_v128_and(a, wasm_i32x4_const_splat(0xFFFF0000))
        const v128_t b_hi = wasm_v128_and(b, wasm_i32x4_const_splat(0xFFFF0000))
        y = f32x4.relaxed_fma(a_lo, b_lo, c)
        y = f32x4.relaxed_fma(a_hi, b_hi, y)
Severity: -- → N/A
Priority: -- → P3
Attachment #9286135 - Attachment description: WIP: Bug 1778751 - Implement BFloat16 product instruction. → Bug 1778751 - Implement BFloat16 product instruction. r?jseward
Pushed by ydelendik@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7d238f018de3 Implement BFloat16 product instruction. r=jseward
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 107 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: