Port Fence, IsNull/IsInvalid & Debugtrap to ISLE (AArch64) (#4548)

Ported the existing implementation of the following Opcodes for AArch64
to ISLE:
- `Fence`
- `IsNull`
- `IsInvalid`
- `Debugtrap`

Copyright (c) 2022 Arm Limited
This commit is contained in:
Damian Heaton
2022-07-28 23:36:13 +01:00
committed by GitHub
parent 29d4edc76b
commit 5e3bb588a8
4 changed files with 92 additions and 34 deletions

View File

@@ -0,0 +1,42 @@
; Tests for platforms with 64-bit references.
test run
target aarch64
target x86_64
target s390x
function %is_null_true_r64() -> b1 {
block0:
v0 = null.r64
v1 = is_null v0
return v1
}
; run: %is_null_true_r64() == true
function %is_null_r64(i64) -> b1 {
block0(v0: i64):
v1 = raw_bitcast.r64 v0
v2 = is_null v1
return v2
}
; run: %is_null_r64(256347) == false
; run: %is_null_r64(-1) == false
; run: %is_null_r64(0) == true
function %is_invalid_r64(i64) -> b1 {
block0(v0: i64):
v1 = raw_bitcast.r64 v0
v2 = is_invalid v1
return v2
}
; run: %is_invalid_r64(0xffffffffffffffff) == true
; run: %is_invalid_r64(-1) == true
; run: %is_invalid_r64(256347) == false
; run: %is_invalid_r64(0) == false
function %is_invalid_null_r64() -> b1 {
block0:
v0 = null.r64
v1 = is_invalid v0
return v1
}
; run: %is_invalid_null_r64() == false