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:
@@ -0,0 +1,19 @@
|
||||
test run
|
||||
target aarch64
|
||||
; i8 and i16 are invalid source sizes for x86_64
|
||||
|
||||
function %scalartovector_i8(i8) -> i8x16 {
|
||||
block0(v0: i8):
|
||||
v1 = scalar_to_vector.i8x16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %scalartovector_i8(1) == [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
|
||||
; run: %scalartovector_i8(255) == [255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
|
||||
|
||||
function %scalartovector_i16(i16) -> i16x8 {
|
||||
block0(v0: i16):
|
||||
v1 = scalar_to_vector.i16x8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %scalartovector_i16(1) == [1 0 0 0 0 0 0 0]
|
||||
; run: %scalartovector_i16(65535) == [65535 0 0 0 0 0 0 0]
|
||||
Reference in New Issue
Block a user