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:
@@ -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
|
||||
Reference in New Issue
Block a user