arm64: Support bool constants
Copyright (c) 2020, Arm Limited.
This commit is contained in:
committed by
Benjamin Bouvier
parent
3638f8a764
commit
ad9be0d445
@@ -184,6 +184,7 @@ fn output_to_const<C: LowerCtx<I = Inst>>(ctx: &mut C, out: InsnOutput) -> Optio
|
|||||||
let imm: i64 = imm.into();
|
let imm: i64 = imm.into();
|
||||||
Some(imm as u64)
|
Some(imm as u64)
|
||||||
}
|
}
|
||||||
|
&InstructionData::UnaryBool { opcode: _, imm } => Some(u64::from(imm)),
|
||||||
&InstructionData::UnaryIeee32 { opcode: _, imm } => Some(u64::from(imm.bits())),
|
&InstructionData::UnaryIeee32 { opcode: _, imm } => Some(u64::from(imm.bits())),
|
||||||
&InstructionData::UnaryIeee64 { opcode: _, imm } => Some(imm.bits()),
|
&InstructionData::UnaryIeee64 { opcode: _, imm } => Some(imm.bits()),
|
||||||
_ => None,
|
_ => None,
|
||||||
|
|||||||
@@ -1,6 +1,32 @@
|
|||||||
test vcode
|
test vcode
|
||||||
target aarch64
|
target aarch64
|
||||||
|
|
||||||
|
function %f() -> b8 {
|
||||||
|
block0:
|
||||||
|
v0 = bconst.b8 true
|
||||||
|
return v0
|
||||||
|
}
|
||||||
|
|
||||||
|
; check: stp fp, lr, [sp, #-16]!
|
||||||
|
; nextln: mov fp, sp
|
||||||
|
; nextln: movz x0, #1
|
||||||
|
; nextln: mov sp, fp
|
||||||
|
; nextln: ldp fp, lr, [sp], #16
|
||||||
|
; nextln: ret
|
||||||
|
|
||||||
|
function %f() -> b16 {
|
||||||
|
block0:
|
||||||
|
v0 = bconst.b16 false
|
||||||
|
return v0
|
||||||
|
}
|
||||||
|
|
||||||
|
; check: stp fp, lr, [sp, #-16]!
|
||||||
|
; nextln: mov fp, sp
|
||||||
|
; nextln: movz x0, #0
|
||||||
|
; nextln: mov sp, fp
|
||||||
|
; nextln: ldp fp, lr, [sp], #16
|
||||||
|
; nextln: ret
|
||||||
|
|
||||||
function %f() -> i64 {
|
function %f() -> i64 {
|
||||||
block0:
|
block0:
|
||||||
v0 = iconst.i64 0
|
v0 = iconst.i64 0
|
||||||
|
|||||||
Reference in New Issue
Block a user