mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-13 01:15:32 +00:00
Provide operand encoding information for half-precision VCVT instructions. Found by randomized testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138273 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2ac8111159
commit
838130e3b9
@ -387,26 +387,26 @@ def VCVTSD : VFPAI<(outs SPR:$Sd), (ins DPR:$Dm), VFPUnaryFrm,
|
|||||||
// Between half-precision and single-precision. For disassembly only.
|
// Between half-precision and single-precision. For disassembly only.
|
||||||
|
|
||||||
// FIXME: Verify encoding after integrated assembler is working.
|
// FIXME: Verify encoding after integrated assembler is working.
|
||||||
def VCVTBSH: ASuI<0b11101, 0b11, 0b0010, 0b01, 0, (outs SPR:$dst), (ins SPR:$a),
|
def VCVTBSH: ASuI<0b11101, 0b11, 0b0010, 0b01, 0, (outs SPR:$Sd), (ins SPR:$Sm),
|
||||||
/* FIXME */ IIC_fpCVTSH, "vcvtb", ".f32.f16\t$dst, $a",
|
/* FIXME */ IIC_fpCVTSH, "vcvtb", ".f32.f16\t$Sd, $Sm",
|
||||||
[/* For disassembly only; pattern left blank */]>;
|
[/* For disassembly only; pattern left blank */]>;
|
||||||
|
|
||||||
def : ARMPat<(f32_to_f16 SPR:$a),
|
def : ARMPat<(f32_to_f16 SPR:$a),
|
||||||
(i32 (COPY_TO_REGCLASS (VCVTBSH SPR:$a), GPR))>;
|
(i32 (COPY_TO_REGCLASS (VCVTBSH SPR:$a), GPR))>;
|
||||||
|
|
||||||
def VCVTBHS: ASuI<0b11101, 0b11, 0b0011, 0b01, 0, (outs SPR:$dst), (ins SPR:$a),
|
def VCVTBHS: ASuI<0b11101, 0b11, 0b0011, 0b01, 0, (outs SPR:$Sd), (ins SPR:$Sm),
|
||||||
/* FIXME */ IIC_fpCVTHS, "vcvtb", ".f16.f32\t$dst, $a",
|
/* FIXME */ IIC_fpCVTHS, "vcvtb", ".f16.f32\t$Sd, $Sm",
|
||||||
[/* For disassembly only; pattern left blank */]>;
|
[/* For disassembly only; pattern left blank */]>;
|
||||||
|
|
||||||
def : ARMPat<(f16_to_f32 GPR:$a),
|
def : ARMPat<(f16_to_f32 GPR:$a),
|
||||||
(VCVTBHS (COPY_TO_REGCLASS GPR:$a, SPR))>;
|
(VCVTBHS (COPY_TO_REGCLASS GPR:$a, SPR))>;
|
||||||
|
|
||||||
def VCVTTSH: ASuI<0b11101, 0b11, 0b0010, 0b11, 0, (outs SPR:$dst), (ins SPR:$a),
|
def VCVTTSH: ASuI<0b11101, 0b11, 0b0010, 0b11, 0, (outs SPR:$Sd), (ins SPR:$Sm),
|
||||||
/* FIXME */ IIC_fpCVTSH, "vcvtt", ".f32.f16\t$dst, $a",
|
/* FIXME */ IIC_fpCVTSH, "vcvtt", ".f32.f16\t$Sd, $Sm",
|
||||||
[/* For disassembly only; pattern left blank */]>;
|
[/* For disassembly only; pattern left blank */]>;
|
||||||
|
|
||||||
def VCVTTHS: ASuI<0b11101, 0b11, 0b0011, 0b11, 0, (outs SPR:$dst), (ins SPR:$a),
|
def VCVTTHS: ASuI<0b11101, 0b11, 0b0011, 0b11, 0, (outs SPR:$Sd), (ins SPR:$Sm),
|
||||||
/* FIXME */ IIC_fpCVTHS, "vcvtt", ".f16.f32\t$dst, $a",
|
/* FIXME */ IIC_fpCVTHS, "vcvtt", ".f16.f32\t$Sd, $Sm",
|
||||||
[/* For disassembly only; pattern left blank */]>;
|
[/* For disassembly only; pattern left blank */]>;
|
||||||
|
|
||||||
def VNEGD : ADuI<0b11101, 0b11, 0b0001, 0b01, 0,
|
def VNEGD : ADuI<0b11101, 0b11, 0b0001, 0b01, 0,
|
||||||
|
@ -1853,3 +1853,6 @@
|
|||||||
|
|
||||||
0x3d 0x2a 0x5e 0x6c
|
0x3d 0x2a 0x5e 0x6c
|
||||||
# CHECK: vmovvs r2, lr, s29, s30
|
# CHECK: vmovvs r2, lr, s29, s30
|
||||||
|
|
||||||
|
0xe9 0x1a 0xb2 0x4e
|
||||||
|
# CHECK: vcvttmi.f32.f16 s2, s19
|
||||||
|
Loading…
x
Reference in New Issue
Block a user