* Convert `fma`, `valltrue` & `vanytrue` to ISLE (AArch64)
Ported the existing implementations of the following opcodes to ISLE on
AArch64:
- `fma`
- Introduced missing support for `fma` on vector values, as per the
docs.
- `valltrue`
- `vanytrue`
Also fixed `fcmp` on scalar values in the interpreter, and enabled
interpreter tests in `simd-fma.clif`.
This introduces the `FMLA` machine instruction.
Copyright (c) 2022 Arm Limited
* Add comments for `Fmla` and `Bsl`
Copyright (c) 2022 Arm Limited
59 lines
1.1 KiB
Plaintext
59 lines
1.1 KiB
Plaintext
test interpret
|
|
test run
|
|
target aarch64
|
|
; s390x and x86_64 do not support 64-bit vectors.
|
|
|
|
function %valltrue_b8x8_f() -> b1 {
|
|
block0:
|
|
v0 = bconst.b8 false
|
|
v1 = splat.b8x8 v0
|
|
v2 = vall_true v1
|
|
return v2
|
|
}
|
|
; run: %valltrue_b8x8_f() == false
|
|
|
|
function %valltrue_b8x8_t() -> b1 {
|
|
block0:
|
|
v0 = bconst.b8 true
|
|
v1 = splat.b8x8 v0
|
|
v2 = vall_true v1
|
|
return v2
|
|
}
|
|
; run: %valltrue_b8x8_t() == true
|
|
|
|
function %valltrue_b16x4_f() -> b1 {
|
|
block0:
|
|
v0 = bconst.b16 false
|
|
v1 = splat.b16x4 v0
|
|
v2 = vall_true v1
|
|
return v2
|
|
}
|
|
; run: %valltrue_b16x4_f() == false
|
|
|
|
function %valltrue_b16x4_t() -> b1 {
|
|
block0:
|
|
v0 = bconst.b16 true
|
|
v1 = splat.b16x4 v0
|
|
v2 = vall_true v1
|
|
return v2
|
|
}
|
|
; run: %valltrue_b16x4_t() == true
|
|
|
|
function %valltrue_b32x2_f() -> b1 {
|
|
block0:
|
|
v0 = bconst.b32 false
|
|
v1 = splat.b32x2 v0
|
|
v2 = vall_true v1
|
|
return v2
|
|
}
|
|
; run: %valltrue_b32x2_f() == false
|
|
|
|
function %valltrue_b32x2_t() -> b1 {
|
|
block0:
|
|
v0 = bconst.b32 true
|
|
v1 = splat.b32x2 v0
|
|
v2 = vall_true v1
|
|
return v2
|
|
}
|
|
; run: %valltrue_b32x2_t() == true
|