For large constants with the low 12 bits clear, we already have the "lui" encoding. Add "addi %x0" encodings for signed 12-bit constants.
22 lines
518 B
Plaintext
22 lines
518 B
Plaintext
test verifier
|
|
isa riscv
|
|
|
|
function %RV32I(i32 link [%x1]) -> i32 link [%x1] {
|
|
fn0 = function %foo()
|
|
|
|
ebb0(v9999: i32):
|
|
; iconst.i32 needs legalizing, so it should throw a
|
|
[R#0,-] v1 = iconst.i32 0xf0f0f0f0f0 ; error: Instruction failed to re-encode
|
|
return v9999
|
|
}
|
|
|
|
function %RV32I(i32 link [%x1]) -> i32 link [%x1] {
|
|
fn0 = function %foo()
|
|
|
|
ebb0(v9999: i32):
|
|
v1 = iconst.i32 1
|
|
v2 = iconst.i32 2
|
|
[R#0,-] v3 = iadd v1, v2 ; error: Instruction re-encoding
|
|
return v9999
|
|
}
|