Convert scalar_to_vector to ISLE (AArch64) (#4401)
* Convert `scalar_to_vector` to ISLE (AArch64) Converted the exisiting implementation of `scalar_to_vector` for AArch64 to ISLE. Copyright (c) 2022 Arm Limited * Add support for floats and fix FpuExtend - Added rules to cover `f32 -> f32x4` and `f64 -> f64x2` for `scalar_to_vector` - Added tests for `scalar_to_vector` on floats. - Corrected an invalid instruction emitted by `FpuExtend` on 64-bit values. Copyright (c) 2022 Arm Limited
This commit is contained in:
@@ -1637,6 +1637,13 @@
|
||||
(_ Unit (emit (MInst.Extend dst rn signed from_bits to_bits))))
|
||||
dst))
|
||||
|
||||
;; Helper for emitting `MInst.FpuExtend` instructions.
|
||||
(decl fpu_extend (Reg ScalarSize) Reg)
|
||||
(rule (fpu_extend src size)
|
||||
(let ((dst WritableReg (temp_writable_reg $F32X4))
|
||||
(_ Unit (emit (MInst.FpuExtend dst src size))))
|
||||
dst))
|
||||
|
||||
;; Helper for emitting `MInst.LoadAcquire` instructions.
|
||||
(decl load_acquire (Type Reg) Reg)
|
||||
(rule (load_acquire ty addr)
|
||||
|
||||
Reference in New Issue
Block a user