cranelift: Implement ineg.i128 for everyone (#5129)

* cranelift: Add `ineg` runtests

* aarch64: Implement `ineg.i128`

* x64: Implement `ineg.i128`

* riscv: Implement `ineg.i128`

* fuzzgen: Enable `ineg.i128`
This commit is contained in:
Afonso Bordado
2022-10-29 00:10:00 +01:00
committed by GitHub
parent 81f7ef7fbe
commit 879b52825f
9 changed files with 127 additions and 20 deletions

View File

@@ -0,0 +1,19 @@
test interpret
test run
set enable_llvm_abi_extensions=true
target aarch64
target s390x
target x86_64
target riscv64
function %ineg_i128(i128) -> i128 {
block0(v0: i128):
v1 = ineg.i128 v0
return v1
}
; run: %ineg_i128(0) == 0
; run: %ineg_i128(1) == -1
; run: %ineg_i128(-1) == 1
; run: %ineg_i128(2) == -2
; run: %ineg_i128(0x80000000_00000000_00000000_00000000) == 0x80000000_00000000_00000000_00000000
; run: %ineg_i128(0x7fffffff_ffffffff_ffffffff_ffffffff) == 0x80000000_00000000_00000000_00000001

View File

@@ -0,0 +1,54 @@
test interpret
test run
target aarch64
target s390x
target x86_64
target riscv64
function %ineg_i8(i8) -> i8 {
block0(v0: i8):
v1 = ineg.i8 v0
return v1
}
; run: %ineg_i8(0) == 0
; run: %ineg_i8(1) == -1
; run: %ineg_i8(-1) == 1
; run: %ineg_i8(2) == -2
; run: %ineg_i8(0x80) == 0x80
; run: %ineg_i8(0x7f) == 0x81
function %ineg_i16(i16) -> i16 {
block0(v0: i16):
v1 = ineg.i16 v0
return v1
}
; run: %ineg_i16(0) == 0
; run: %ineg_i16(1) == -1
; run: %ineg_i16(-1) == 1
; run: %ineg_i16(2) == -2
; run: %ineg_i16(0x8000) == 0x8000
; run: %ineg_i16(0x7fff) == 0x8001
function %ineg_i32(i32) -> i32 {
block0(v0: i32):
v1 = ineg.i32 v0
return v1
}
; run: %ineg_i32(0) == 0
; run: %ineg_i32(1) == -1
; run: %ineg_i32(-1) == 1
; run: %ineg_i32(2) == -2
; run: %ineg_i32(0x80000000) == 0x80000000
; run: %ineg_i32(0x7fffffff) == 0x80000001
function %ineg_i64(i64) -> i64 {
block0(v0: i64):
v1 = ineg.i64 v0
return v1
}
; run: %ineg_i64(0) == 0
; run: %ineg_i64(1) == -1
; run: %ineg_i64(-1) == 1
; run: %ineg_i64(2) == -2
; run: %ineg_i64(0x80000000_00000000) == 0x80000000_00000000
; run: %ineg_i64(0x7fffffff_ffffffff) == 0x80000000_00000001