Split Fmla and Bsl out into new VecRRRMod op (#4638)
Separates the following opcodes for AArch64 into a separate `VecALUModOp` enum, which is emitted via the `VecRRRMod` instruction. This separates vector ALU instructions which modify a register from instructions which write to a new register: - `Bsl` - `Fmla` Addresses [a discussion](https://github.com/bytecodealliance/wasmtime/pull/4608#discussion_r937975581) in #4608. Copyright (c) 2022 Arm Limited
This commit is contained in:
@@ -380,7 +380,7 @@
|
||||
;;;; Rules for `fma` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(rule (lower (has_type ty @ (multi_lane _ _) (fma x y z)))
|
||||
(vec_rrr_inplace (VecALUOp.Fmla) z x y (vector_size ty)))
|
||||
(vec_rrr_mod (VecALUModOp.Fmla) z x y (vector_size ty)))
|
||||
|
||||
(rule (lower (has_type (ty_scalar_float ty) (fma x y z)))
|
||||
(fpu_rrrr (FPUOp3.MAdd) (scalar_size ty) x y z))
|
||||
|
||||
Reference in New Issue
Block a user