mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[VE] Add vector float instructions
Add VFAD/VFSB/VFMP/VFDV/VFSQRT/VFCP/VFCM/VFMAD/VFMSB/VFNMAD/VFNMSB/ VRCP/VRSQRT/VRSQRTNEX/VFIX/VFIXX/VFLT/VFLTX/VCVS/VCVD instructions. Add regression tests too. Also add additional AsmParser for VFIX and VFIXX instructions to parse their mnemonic. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D90166
This commit is contained in:
parent
aa30484b49
commit
7caf0af059
@ -914,6 +914,16 @@ StringRef VEAsmParser::splitMnemonic(StringRef Name, SMLoc NameLoc,
|
||||
Mnemonic = parseRD(Name, 10, NameLoc, Operands);
|
||||
} else if (Name.startswith("cvt.l.d")) {
|
||||
Mnemonic = parseRD(Name, 7, NameLoc, Operands);
|
||||
} else if (Name.startswith("vcvt.w.d.sx") || Name.startswith("vcvt.w.d.zx") ||
|
||||
Name.startswith("vcvt.w.s.sx") || Name.startswith("vcvt.w.s.zx")) {
|
||||
Mnemonic = parseRD(Name, 11, NameLoc, Operands);
|
||||
} else if (Name.startswith("vcvt.l.d")) {
|
||||
Mnemonic = parseRD(Name, 8, NameLoc, Operands);
|
||||
} else if (Name.startswith("pvcvt.w.s.lo") ||
|
||||
Name.startswith("pvcvt.w.s.up")) {
|
||||
Mnemonic = parseRD(Name, 12, NameLoc, Operands);
|
||||
} else if (Name.startswith("pvcvt.w.s")) {
|
||||
Mnemonic = parseRD(Name, 9, NameLoc, Operands);
|
||||
} else {
|
||||
Operands->push_back(VEOperand::CreateToken(Mnemonic, NameLoc));
|
||||
}
|
||||
|
@ -564,6 +564,43 @@ multiclass RVSAm<string opcStr, bits<8>opc, RegisterClass RC,
|
||||
defm vim : RVmm<opcStr, ", $vz, $sy, $sz", opc, RC, RCM,
|
||||
(ins RC:$vz, uimm3:$sy, mimm:$sz)>;
|
||||
}
|
||||
// Generic RV multiclass with 1 argument using vy field.
|
||||
// e.g. VFSQRT, VRCP, and VRSQRT.
|
||||
let VE_VLIndex = 2 in
|
||||
multiclass RVF1m<string opcStr, bits<8>opc, RegisterClass RC,
|
||||
RegisterClass RCM> {
|
||||
let cy = 0, sy = 0, vy = ? in
|
||||
defm v : RVmm<opcStr, ", $vy", opc, RC, RCM, (ins RC:$vy)>;
|
||||
}
|
||||
// Special RV multiclass with 3 arguments using cs2.
|
||||
// e.g. VFMAD, VFMSB, VFNMAD, and etc.
|
||||
let VE_VLIndex = 4 in
|
||||
multiclass RVMm<string opcStr, bits<8>opc, RegisterClass VRC, RegisterClass RC,
|
||||
RegisterClass RCM, Operand SIMM = simm7> {
|
||||
let cy = 0, sy = 0, vy = ?, vz = ?, vw = ? in
|
||||
defm vvv : RVmm<opcStr, ", $vy, $vz, $vw", opc, VRC, RCM,
|
||||
(ins VRC:$vy, VRC:$vz, VRC:$vw)>;
|
||||
let cs2 = 1, vy = ?, vw = ? in
|
||||
defm vrv : RVmm<opcStr, ", $vy, $sy, $vw", opc, VRC, RCM,
|
||||
(ins VRC:$vy, RC:$sy, VRC:$vw)>;
|
||||
let cs2 = 1, cy = 0, vy = ?, vw = ? in
|
||||
defm viv : RVmm<opcStr, ", $vy, $sy, $vw", opc, VRC, RCM,
|
||||
(ins VRC:$vy, SIMM:$sy, VRC:$vw)>;
|
||||
let cs = 1, vz = ?, vw = ? in
|
||||
defm rvv : RVmm<opcStr, ", $sy, $vz, $vw", opc, VRC, RCM,
|
||||
(ins RC:$sy, VRC:$vz, VRC:$vw)>;
|
||||
let cs = 1, cy = 0, vz = ?, vw = ? in
|
||||
defm ivv : RVmm<opcStr, ", $sy, $vz, $vw", opc, VRC, RCM,
|
||||
(ins SIMM:$sy, VRC:$vz, VRC:$vw)>;
|
||||
}
|
||||
// Special RV multiclass with 2 arguments for floating point conversions.
|
||||
// e.g. VFIX and VFIXX
|
||||
let hasSideEffects = 0, VE_VLIndex = 3 in
|
||||
multiclass RVFIXm<string opcStr, bits<8> opc, RegisterClass RC,
|
||||
RegisterClass RCM> {
|
||||
let cy = 0, sy = 0, vy = ?, vz = ? in
|
||||
defm v : RVmm<opcStr#"$vz", ", $vy", opc, RC, RCM, (ins RDOp:$vz, RC:$vy)>;
|
||||
}
|
||||
|
||||
// Section 8.10.1 - VADD (Vector Add)
|
||||
let cx = 0, cx2 = 0 in
|
||||
@ -849,3 +886,233 @@ defm VSRAL : RVSm<"vsra.l", 0xd5, I64, V64, VM>;
|
||||
|
||||
// Section 8.12.9 - VSFA (Vector Shift Left and Add)
|
||||
defm VSFA : RVSAm<"vsfa", 0xd7, V64, VM>;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Section 8.13 - Vector Floating-Point Arithmetic Instructions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Section 8.13.1 - VFAD (Vector Floating Add)
|
||||
let cx = 0, cx2 = 0 in
|
||||
defm VFADDD : RVm<"vfadd.d", 0xcc, V64, I64, VM, simm7fp>;
|
||||
let cx = 0, cx2 = 1 in
|
||||
defm PVFADDLO : RVm<"pvfadd.lo", 0xcc, V64, I64, VM, simm7fp>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVFADDUP : RVm<"pvfadd.up", 0xcc, V64, F32, VM, simm7fp>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VFADDS : RVm<"vfadd.s", 0xcc, V64, F32, VM, simm7fp>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVFADD : RVm<"pvfadd", 0xcc, V64, I64, VM512, simm7fp>;
|
||||
def : MnemonicAlias<"vfadd.s", "pvfadd.up">;
|
||||
|
||||
// Section 8.13.2 - VFSB (Vector Floating Subtract)
|
||||
let cx = 0, cx2 = 0 in
|
||||
defm VFSUBD : RVm<"vfsub.d", 0xdc, V64, I64, VM, simm7fp>;
|
||||
let cx = 0, cx2 = 1 in
|
||||
defm PVFSUBLO : RVm<"pvfsub.lo", 0xdc, V64, I64, VM, simm7fp>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVFSUBUP : RVm<"pvfsub.up", 0xdc, V64, F32, VM, simm7fp>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VFSUBS : RVm<"vfsub.s", 0xdc, V64, F32, VM, simm7fp>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVFSUB : RVm<"pvfsub", 0xdc, V64, I64, VM512, simm7fp>;
|
||||
def : MnemonicAlias<"vfsub.s", "pvfsub.up">;
|
||||
|
||||
// Section 8.13.3 - VFMP (Vector Floating Multiply)
|
||||
let cx = 0, cx2 = 0 in
|
||||
defm VFMULD : RVm<"vfmul.d", 0xcd, V64, I64, VM, simm7fp>;
|
||||
let cx = 0, cx2 = 1 in
|
||||
defm PVFMULLO : RVm<"pvfmul.lo", 0xcd, V64, I64, VM, simm7fp>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVFMULUP : RVm<"pvfmul.up", 0xcd, V64, F32, VM, simm7fp>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VFMULS : RVm<"vfmul.s", 0xcd, V64, F32, VM, simm7fp>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVFMUL : RVm<"pvfmul", 0xcd, V64, I64, VM512, simm7fp>;
|
||||
def : MnemonicAlias<"vfmul.s", "pvfmul.up">;
|
||||
|
||||
// Section 8.13.4 - VFDV (Vector Floating Divide)
|
||||
defm VFDIVD : RVDIVm<"vfdiv.d", 0xdd, V64, I64, VM, simm7fp>;
|
||||
let cx = 1 in
|
||||
defm VFDIVS : RVDIVm<"vfdiv.s", 0xdd, V64, F32, VM, simm7fp>;
|
||||
|
||||
// Section 8.13.5 - VFSQRT (Vector Floating Square Root)
|
||||
defm VFSQRTD : RVF1m<"vfsqrt.d", 0xed, V64, VM>;
|
||||
let cx = 1 in
|
||||
defm VFSQRTS : RVF1m<"vfsqrt.s", 0xed, V64, VM>;
|
||||
|
||||
// Section 8.13.6 - VFCP (Vector Floating Compare)
|
||||
let cx = 0, cx2 = 0 in
|
||||
defm VFCMPD : RVm<"vfcmp.d", 0xfc, V64, I64, VM, simm7fp>;
|
||||
let cx = 0, cx2 = 1 in
|
||||
defm PVFCMPLO : RVm<"pvfcmp.lo", 0xfc, V64, I64, VM, simm7fp>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVFCMPUP : RVm<"pvfcmp.up", 0xfc, V64, F32, VM, simm7fp>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VFCMPS : RVm<"vfcmp.s", 0xfc, V64, F32, VM, simm7fp>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVFCMP : RVm<"pvfcmp", 0xfc, V64, I64, VM512, simm7fp>;
|
||||
def : MnemonicAlias<"vfcmp.s", "pvfcmp.up">;
|
||||
|
||||
// Section 8.13.7 - VFCM (Vector Floating Compare and Select Maximum/Minimum)
|
||||
let cx = 0, cx2 = 0 in
|
||||
defm VFMAXD : RVm<"vfmax.d", 0xbd, V64, I64, VM, simm7fp>;
|
||||
let cx = 0, cx2 = 1 in
|
||||
defm PVFMAXLO : RVm<"pvfmax.lo", 0xbd, V64, I64, VM, simm7fp>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVFMAXUP : RVm<"pvfmax.up", 0xbd, V64, F32, VM, simm7fp>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VFMAXS : RVm<"vfmax.s", 0xbd, V64, F32, VM, simm7fp>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVFMAX : RVm<"pvfmax", 0xbd, V64, I64, VM512, simm7fp>;
|
||||
let cs2 = 1 in {
|
||||
let cx = 0, cx2 = 0 in
|
||||
defm VFMIND : RVm<"vfmin.d", 0xbd, V64, I64, VM, simm7fp>;
|
||||
let cx = 0, cx2 = 1 in
|
||||
defm PVFMINLO : RVm<"pvfmin.lo", 0xbd, V64, I64, VM, simm7fp>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVFMINUP : RVm<"pvfmin.up", 0xbd, V64, F32, VM, simm7fp>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VFMINS : RVm<"vfmin.s", 0xbd, V64, F32, VM, simm7fp>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVFMIN : RVm<"pvfmin", 0xbd, V64, I64, VM512, simm7fp>;
|
||||
}
|
||||
def : MnemonicAlias<"vfmax.s", "pvfmax.up">;
|
||||
def : MnemonicAlias<"vfmin.s", "pvfmin.up">;
|
||||
|
||||
// Section 8.13.8 - VFMAD (Vector Floating Fused Multiply Add)
|
||||
let cx = 0, cx2 = 0 in
|
||||
defm VFMADD : RVMm<"vfmad.d", 0xe2, V64, I64, VM, simm7fp>;
|
||||
let cx = 0, cx2 = 1 in
|
||||
defm PVFMADLO : RVMm<"pvfmad.lo", 0xe2, V64, I64, VM, simm7fp>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVFMADUP : RVMm<"pvfmad.up", 0xe2, V64, F32, VM, simm7fp>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VFMADS : RVMm<"vfmad.s", 0xe2, V64, F32, VM, simm7fp>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVFMAD : RVMm<"pvfmad", 0xe2, V64, I64, VM512, simm7fp>;
|
||||
def : MnemonicAlias<"vfmad.s", "pvfmad.up">;
|
||||
|
||||
// Section 8.13.9 - VFMSB (Vector Floating Fused Multiply Subtract)
|
||||
let cx = 0, cx2 = 0 in
|
||||
defm VFMSBD : RVMm<"vfmsb.d", 0xf2, V64, I64, VM, simm7fp>;
|
||||
let cx = 0, cx2 = 1 in
|
||||
defm PVFMSBLO : RVMm<"pvfmsb.lo", 0xf2, V64, I64, VM, simm7fp>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVFMSBUP : RVMm<"pvfmsb.up", 0xf2, V64, F32, VM, simm7fp>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VFMSBS : RVMm<"vfmsb.s", 0xf2, V64, F32, VM, simm7fp>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVFMSB : RVMm<"pvfmsb", 0xf2, V64, I64, VM512, simm7fp>;
|
||||
def : MnemonicAlias<"vfmsb.s", "pvfmsb.up">;
|
||||
|
||||
// Section 8.13.10 - VFNMAD (Vector Floating Fused Negative Multiply Add)
|
||||
let cx = 0, cx2 = 0 in
|
||||
defm VFNMADD : RVMm<"vfnmad.d", 0xe3, V64, I64, VM, simm7fp>;
|
||||
let cx = 0, cx2 = 1 in
|
||||
defm PVFNMADLO : RVMm<"pvfnmad.lo", 0xe3, V64, I64, VM, simm7fp>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVFNMADUP : RVMm<"pvfnmad.up", 0xe3, V64, F32, VM, simm7fp>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VFNMADS : RVMm<"vfnmad.s", 0xe3, V64, F32, VM, simm7fp>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVFNMAD : RVMm<"pvfnmad", 0xe3, V64, I64, VM512, simm7fp>;
|
||||
def : MnemonicAlias<"vfnmad.s", "pvfnmad.up">;
|
||||
|
||||
// Section 8.13.11 - VFNMSB (Vector Floating Fused Negative Multiply Subtract)
|
||||
let cx = 0, cx2 = 0 in
|
||||
defm VFNMSBD : RVMm<"vfnmsb.d", 0xf3, V64, I64, VM, simm7fp>;
|
||||
let cx = 0, cx2 = 1 in
|
||||
defm PVFNMSBLO : RVMm<"pvfnmsb.lo", 0xf3, V64, I64, VM, simm7fp>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVFNMSBUP : RVMm<"pvfnmsb.up", 0xf3, V64, F32, VM, simm7fp>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VFNMSBS : RVMm<"vfnmsb.s", 0xf3, V64, F32, VM, simm7fp>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVFNMSB : RVMm<"pvfnmsb", 0xf3, V64, I64, VM512, simm7fp>;
|
||||
def : MnemonicAlias<"vfnmsb.s", "pvfnmsb.up">;
|
||||
|
||||
// Section 8.13.12 - VRCP (Vector Floating Reciprocal)
|
||||
let cx = 0, cx2 = 0 in defm VRCPD : RVF1m<"vrcp.d", 0xe1, V64, VM>;
|
||||
let cx = 0, cx2 = 1 in defm PVRCPLO : RVF1m<"pvrcp.lo", 0xe1, V64, VM>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVRCPUP : RVF1m<"pvrcp.up", 0xe1, V64, VM>;
|
||||
let isCodeGenOnly = 1 in defm VRCPS : RVF1m<"vrcp.s", 0xe1, V64, VM>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in defm PVRCP : RVF1m<"pvrcp", 0xe1, V64, VM512>;
|
||||
def : MnemonicAlias<"vrcp.s", "pvrcp.up">;
|
||||
|
||||
// Section 8.13.13 - VRSQRT (Vector Floating Reciprocal Square Root)
|
||||
let cx = 0, cx2 = 0 in defm VRSQRTD : RVF1m<"vrsqrt.d", 0xf1, V64, VM>;
|
||||
let cx = 0, cx2 = 1 in defm PVRSQRTLO : RVF1m<"pvrsqrt.lo", 0xf1, V64, VM>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVRSQRTUP : RVF1m<"pvrsqrt.up", 0xf1, V64, VM>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VRSQRTS : RVF1m<"vrsqrt.s", 0xf1, V64, VM>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVRSQRT : RVF1m<"pvrsqrt", 0xf1, V64, VM512>;
|
||||
let cs2 = 1 in {
|
||||
let cx = 0, cx2 = 0 in
|
||||
defm VRSQRTDNEX : RVF1m<"vrsqrt.d.nex", 0xf1, V64, VM>;
|
||||
let cx = 0, cx2 = 1 in
|
||||
defm PVRSQRTLONEX : RVF1m<"pvrsqrt.lo.nex", 0xf1, V64, VM>;
|
||||
let cx = 1, cx2 = 0 in {
|
||||
defm PVRSQRTUPNEX : RVF1m<"pvrsqrt.up.nex", 0xf1, V64, VM>;
|
||||
let isCodeGenOnly = 1 in
|
||||
defm VRSQRTSNEX : RVF1m<"vrsqrt.s.nex", 0xf1, V64, VM>;
|
||||
}
|
||||
let cx = 1, cx2 = 1 in
|
||||
defm PVRSQRTNEX : RVF1m<"pvrsqrt.nex", 0xf1, V64, VM512>;
|
||||
}
|
||||
def : MnemonicAlias<"vrsqrt.s", "pvrsqrt.up">;
|
||||
def : MnemonicAlias<"vrsqrt.s.nex", "pvrsqrt.up.nex">;
|
||||
|
||||
// Section 8.13.14 - VFIX (Vector Convert to Fixed Pointer)
|
||||
let cx = 0, cx2 = 0, cs2 = 0 in
|
||||
defm VCVTWDSX : RVFIXm<"vcvt.w.d.sx", 0xe8, V64, VM>;
|
||||
let cx = 0, cx2 = 1, cs2 = 0 in
|
||||
defm VCVTWDZX : RVFIXm<"vcvt.w.d.zx", 0xe8, V64, VM>;
|
||||
let cx = 1, cx2 = 0, cs2 = 0 in
|
||||
defm VCVTWSSX : RVFIXm<"vcvt.w.s.sx", 0xe8, V64, VM>;
|
||||
let cx = 1, cx2 = 1, cs2 = 0 in
|
||||
defm VCVTWSZX : RVFIXm<"vcvt.w.s.zx", 0xe8, V64, VM>;
|
||||
let cx = 0, cx2 = 1, cs2 = 1 in
|
||||
defm PVCVTWSLO : RVFIXm<"pvcvt.w.s.lo", 0xe8, V64, VM>;
|
||||
let cx = 1, cx2 = 0, cs2 = 1 in
|
||||
defm PVCVTWSUP : RVFIXm<"pvcvt.w.s.up", 0xe8, V64, VM>;
|
||||
let cx = 1, cx2 = 1, cs2 = 1 in
|
||||
defm PVCVTWS : RVFIXm<"pvcvt.w.s", 0xe8, V64, VM512>;
|
||||
|
||||
// Section 8.13.15 - VFIXX (Vector Convert to Fixed Pointer)
|
||||
defm VCVTLD : RVFIXm<"vcvt.l.d", 0xa8, V64, VM>;
|
||||
|
||||
// Section 8.13.16 - VFLT (Vector Convert to Floating Pointer)
|
||||
let cx = 0, cx2 = 0, cs2 = 0 in
|
||||
defm VCVTDW : RVF1m<"vcvt.d.w", 0xf8, V64, VM>;
|
||||
let cx = 1, cx2 = 0, cs2 = 0 in
|
||||
defm VCVTSW : RVF1m<"vcvt.s.w", 0xf8, V64, VM>;
|
||||
let cx = 0, cx2 = 1, cs2 = 1 in
|
||||
defm PVCVTSWLO : RVF1m<"pvcvt.s.w.lo", 0xf8, V64, VM>;
|
||||
let cx = 1, cx2 = 0, cs2 = 1 in
|
||||
defm PVCVTSWUP : RVF1m<"pvcvt.s.w.up", 0xf8, V64, VM>;
|
||||
let cx = 1, cx2 = 1, cs2 = 1 in
|
||||
defm PVCVTSW : RVF1m<"pvcvt.s.w", 0xf8, V64, VM512>;
|
||||
|
||||
// Section 8.13.17 - VFLTX (Vector Convert to Floating Pointer)
|
||||
defm VCVTDL : RVF1m<"vcvt.d.l", 0xb8, V64, VM>;
|
||||
|
||||
// Section 8.13.18 - VCVS (Vector Convert to Single-format)
|
||||
defm VCVTSD : RVF1m<"vcvt.s.d", 0x9f, V64, VM>;
|
||||
|
||||
// Section 8.13.19 - VCVD (Vector Convert to Double-format)
|
||||
defm VCVTDS : RVF1m<"vcvt.d.s", 0x8f, V64, VM>;
|
||||
|
28
test/MC/VE/VCVD.s
Normal file
28
test/MC/VE/VCVD.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vcvt.d.s %v11, %v12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0x8f]
|
||||
vcvt.d.s %v11, %v12
|
||||
|
||||
# CHECK-INST: vcvt.d.s %v11, %vix, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x0b,0x8f]
|
||||
vcvt.d.s %v11, %vix, %vm11
|
||||
|
||||
# CHECK-INST: vcvt.d.s %vix, %v22, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x0f,0x8f]
|
||||
vcvt.d.s %vix, %v22, %vm15
|
||||
|
||||
# CHECK-INST: vcvt.d.s %v63, %v60, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x3c,0x3f,0x00,0x00,0x02,0x8f]
|
||||
vcvt.d.s %v63, %v60, %vm2
|
||||
|
||||
# CHECK-INST: vcvt.d.s %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x8f]
|
||||
vcvt.d.s %vix, %vix, %vm0
|
||||
|
||||
# CHECK-INST: vcvt.d.s %vix, %vix, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x02,0x8f]
|
||||
vcvt.d.s %vix, %vix, %vm2
|
28
test/MC/VE/VCVS.s
Normal file
28
test/MC/VE/VCVS.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vcvt.s.d %v11, %v12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0x9f]
|
||||
vcvt.s.d %v11, %v12
|
||||
|
||||
# CHECK-INST: vcvt.s.d %v11, %vix, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x0b,0x9f]
|
||||
vcvt.s.d %v11, %vix, %vm11
|
||||
|
||||
# CHECK-INST: vcvt.s.d %vix, %v22, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x0f,0x9f]
|
||||
vcvt.s.d %vix, %v22, %vm15
|
||||
|
||||
# CHECK-INST: vcvt.s.d %v63, %v60, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x3c,0x3f,0x00,0x00,0x02,0x9f]
|
||||
vcvt.s.d %v63, %v60, %vm2
|
||||
|
||||
# CHECK-INST: vcvt.s.d %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x9f]
|
||||
vcvt.s.d %vix, %vix, %vm0
|
||||
|
||||
# CHECK-INST: vcvt.s.d %vix, %vix, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x02,0x9f]
|
||||
vcvt.s.d %vix, %vix, %vm2
|
28
test/MC/VE/VFAD.s
Normal file
28
test/MC/VE/VFAD.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vfadd.d %v11, %s20, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x94,0x20,0xcc]
|
||||
vfadd.d %v11, %s20, %v22
|
||||
|
||||
# CHECK-INST: vfadd.up %vix, %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0xff,0xff,0x00,0x00,0x80,0xcc]
|
||||
vfadd.s %vix, %vix, %vix
|
||||
|
||||
# CHECK-INST: pvfadd.lo %vix, 22, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0xff,0x00,0x16,0x60,0xcc]
|
||||
pvfadd.lo %vix, 22, %v22
|
||||
|
||||
# CHECK-INST: vfadd.up %v11, 63, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x3f,0xab,0xcc]
|
||||
pvfadd.up %v11, 63, %v22, %vm11
|
||||
|
||||
# CHECK-INST: vfadd.up %v11, %vix, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0xff,0x0b,0x00,0x00,0x8b,0xcc]
|
||||
pvfadd.up %v11, %vix, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvfadd %v12, %v20, %v22, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x14,0x0c,0x00,0x00,0xcc,0xcc]
|
||||
pvfadd %v12, %v20, %v22, %vm12
|
52
test/MC/VE/VFCM.s
Normal file
52
test/MC/VE/VFCM.s
Normal file
@ -0,0 +1,52 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vfmax.d %v11, %s20, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x94,0x20,0xbd]
|
||||
vfmax.d %v11, %s20, %v22
|
||||
|
||||
# CHECK-INST: pvfmax.up %vix, %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0xff,0xff,0x00,0x00,0x80,0xbd]
|
||||
vfmax.s %vix, %vix, %vix
|
||||
|
||||
# CHECK-INST: pvfmax.lo %vix, 22, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0xff,0x00,0x16,0x60,0xbd]
|
||||
pvfmax.lo %vix, 22, %v22
|
||||
|
||||
# CHECK-INST: pvfmax.up %v11, 63, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x3f,0xab,0xbd]
|
||||
pvfmax.up %v11, 63, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvfmax.up %v11, %vix, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0xff,0x0b,0x00,0x00,0x8b,0xbd]
|
||||
pvfmax.up %v11, %vix, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvfmax %v12, %v20, %v22, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x14,0x0c,0x00,0x00,0xcc,0xbd]
|
||||
pvfmax %v12, %v20, %v22, %vm12
|
||||
|
||||
# CHECK-INST: vfmin.d %v11, %s20, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x94,0x30,0xbd]
|
||||
vfmin.d %v11, %s20, %v22
|
||||
|
||||
# CHECK-INST: pvfmin.up %vix, %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0xff,0xff,0x00,0x00,0x90,0xbd]
|
||||
vfmin.s %vix, %vix, %vix
|
||||
|
||||
# CHECK-INST: pvfmin.lo %vix, 22, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0xff,0x00,0x16,0x70,0xbd]
|
||||
pvfmin.lo %vix, 22, %v22
|
||||
|
||||
# CHECK-INST: pvfmin.up %v11, 63, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x3f,0xbb,0xbd]
|
||||
pvfmin.up %v11, 63, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvfmin.up %v11, %vix, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0xff,0x0b,0x00,0x00,0x9b,0xbd]
|
||||
pvfmin.up %v11, %vix, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvfmin %v12, %v20, %v22, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x14,0x0c,0x00,0x00,0xdc,0xbd]
|
||||
pvfmin %v12, %v20, %v22, %vm12
|
28
test/MC/VE/VFCP.s
Normal file
28
test/MC/VE/VFCP.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vfcmp.d %v11, %s20, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x94,0x20,0xfc]
|
||||
vfcmp.d %v11, %s20, %v22
|
||||
|
||||
# CHECK-INST: pvfcmp.up %vix, %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0xff,0xff,0x00,0x00,0x80,0xfc]
|
||||
vfcmp.s %vix, %vix, %vix
|
||||
|
||||
# CHECK-INST: pvfcmp.lo %vix, 22, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0xff,0x00,0x16,0x60,0xfc]
|
||||
pvfcmp.lo %vix, 22, %v22
|
||||
|
||||
# CHECK-INST: pvfcmp.up %v11, 63, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x3f,0xab,0xfc]
|
||||
pvfcmp.up %v11, 63, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvfcmp.up %v11, %vix, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0xff,0x0b,0x00,0x00,0x8b,0xfc]
|
||||
pvfcmp.up %v11, %vix, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvfcmp %v12, %v20, %v22, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x14,0x0c,0x00,0x00,0xcc,0xfc]
|
||||
pvfcmp %v12, %v20, %v22, %vm12
|
24
test/MC/VE/VFDV.s
Normal file
24
test/MC/VE/VFDV.s
Normal file
@ -0,0 +1,24 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vfdiv.d %v11, %s20, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x94,0x20,0xdd]
|
||||
vfdiv.d %v11, %s20, %v22
|
||||
|
||||
# CHECK-INST: vfdiv.d %vix, %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0xff,0xff,0x00,0x00,0x00,0xdd]
|
||||
vfdiv.d %vix, %vix, %vix
|
||||
|
||||
# CHECK-INST: vfdiv.s %vix, 22, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0xff,0x00,0x16,0xa0,0xdd]
|
||||
vfdiv.s %vix, 22, %v22
|
||||
|
||||
# CHECK-INST: vfdiv.s %vix, %v22, 22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x16,0x90,0xdd]
|
||||
vfdiv.s %vix, %v22, 22
|
||||
|
||||
# CHECK-INST: vfdiv.s %v11, %v22, 63, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x3f,0x9b,0xdd]
|
||||
vfdiv.s %v11, %v22, 63, %vm11
|
32
test/MC/VE/VFIX.s
Normal file
32
test/MC/VE/VFIX.s
Normal file
@ -0,0 +1,32 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vcvt.w.d.sx %v11, %v12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0xe8]
|
||||
vcvt.w.d.sx %v11, %v12
|
||||
|
||||
# CHECK-INST: vcvt.w.d.zx.rz %v11, %vix, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x08,0xff,0x0b,0x00,0x00,0x4b,0xe8]
|
||||
vcvt.w.d.zx.rz %v11, %vix, %vm11
|
||||
|
||||
# CHECK-INST: vcvt.w.s.sx.rp %vix, %v22, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x09,0x16,0xff,0x00,0x00,0x8f,0xe8]
|
||||
vcvt.w.s.sx.rp %vix, %v22, %vm15
|
||||
|
||||
# CHECK-INST: vcvt.w.s.zx.rm %v63, %v60, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x0a,0x3c,0x3f,0x00,0x00,0xc2,0xe8]
|
||||
vcvt.w.s.zx.rm %v63, %v60, %vm2
|
||||
|
||||
# CHECK-INST: pvcvt.w.s.lo.rn %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0x0b,0xff,0xff,0x00,0x00,0x50,0xe8]
|
||||
pvcvt.w.s.lo.rn %vix, %vix, %vm0
|
||||
|
||||
# CHECK-INST: pvcvt.w.s.up.ra %vix, %vix, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x0c,0xff,0xff,0x00,0x00,0x92,0xe8]
|
||||
pvcvt.w.s.up.ra %vix, %vix, %vm2
|
||||
|
||||
# CHECK-INST: pvcvt.w.s %vix, %vix, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0xd2,0xe8]
|
||||
pvcvt.w.s %vix, %vix, %vm2
|
28
test/MC/VE/VFIXX.s
Normal file
28
test/MC/VE/VFIXX.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vcvt.l.d %v11, %v12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0xa8]
|
||||
vcvt.l.d %v11, %v12
|
||||
|
||||
# CHECK-INST: vcvt.l.d.rz %v11, %vix, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x08,0xff,0x0b,0x00,0x00,0x0b,0xa8]
|
||||
vcvt.l.d.rz %v11, %vix, %vm11
|
||||
|
||||
# CHECK-INST: vcvt.l.d.rp %vix, %v22, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x09,0x16,0xff,0x00,0x00,0x0f,0xa8]
|
||||
vcvt.l.d.rp %vix, %v22, %vm15
|
||||
|
||||
# CHECK-INST: vcvt.l.d.rm %v63, %v60, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x0a,0x3c,0x3f,0x00,0x00,0x02,0xa8]
|
||||
vcvt.l.d.rm %v63, %v60, %vm2
|
||||
|
||||
# CHECK-INST: vcvt.l.d.rn %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0x0b,0xff,0xff,0x00,0x00,0x00,0xa8]
|
||||
vcvt.l.d.rn %vix, %vix, %vm0
|
||||
|
||||
# CHECK-INST: vcvt.l.d.ra %vix, %vix, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x0c,0xff,0xff,0x00,0x00,0x02,0xa8]
|
||||
vcvt.l.d.ra %vix, %vix, %vm2
|
24
test/MC/VE/VFLT.s
Normal file
24
test/MC/VE/VFLT.s
Normal file
@ -0,0 +1,24 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vcvt.d.w %v11, %v12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0xf8]
|
||||
vcvt.d.w %v11, %v12
|
||||
|
||||
# CHECK-INST: vcvt.s.w %v11, %vix, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x8b,0xf8]
|
||||
vcvt.s.w %v11, %vix, %vm11
|
||||
|
||||
# CHECK-INST: pvcvt.s.w.lo %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x50,0xf8]
|
||||
pvcvt.s.w.lo %vix, %vix, %vm0
|
||||
|
||||
# CHECK-INST: pvcvt.s.w.up %vix, %vix, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x92,0xf8]
|
||||
pvcvt.s.w.up %vix, %vix, %vm2
|
||||
|
||||
# CHECK-INST: pvcvt.s.w %vix, %vix, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0xd2,0xf8]
|
||||
pvcvt.s.w %vix, %vix, %vm2
|
28
test/MC/VE/VFLTX.s
Normal file
28
test/MC/VE/VFLTX.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vcvt.d.l %v11, %v12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0xb8]
|
||||
vcvt.d.l %v11, %v12
|
||||
|
||||
# CHECK-INST: vcvt.d.l %v11, %vix, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x0b,0xb8]
|
||||
vcvt.d.l %v11, %vix, %vm11
|
||||
|
||||
# CHECK-INST: vcvt.d.l %vix, %v22, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x0f,0xb8]
|
||||
vcvt.d.l %vix, %v22, %vm15
|
||||
|
||||
# CHECK-INST: vcvt.d.l %v63, %v60, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x3c,0x3f,0x00,0x00,0x02,0xb8]
|
||||
vcvt.d.l %v63, %v60, %vm2
|
||||
|
||||
# CHECK-INST: vcvt.d.l %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xb8]
|
||||
vcvt.d.l %vix, %vix, %vm0
|
||||
|
||||
# CHECK-INST: vcvt.d.l %vix, %vix, %vm2
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x02,0xb8]
|
||||
vcvt.d.l %vix, %vix, %vm2
|
24
test/MC/VE/VFMAD.s
Normal file
24
test/MC/VE/VFMAD.s
Normal file
@ -0,0 +1,24 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vfmad.d %v11, %s20, %v22, %v21
|
||||
# CHECK-ENCODING: encoding: [0x15,0x16,0x00,0x0b,0x00,0x94,0x20,0xe2]
|
||||
vfmad.d %v11, %s20, %v22, %v21
|
||||
|
||||
# CHECK-INST: pvfmad.up %vix, %vix, %vix, %v21
|
||||
# CHECK-ENCODING: encoding: [0x15,0xff,0xff,0xff,0x00,0x00,0x80,0xe2]
|
||||
vfmad.s %vix, %vix, %vix, %v21
|
||||
|
||||
# CHECK-INST: pvfmad.lo %vix, 22, %v22, %vix
|
||||
# CHECK-ENCODING: encoding: [0xff,0x16,0x00,0xff,0x00,0x16,0x60,0xe2]
|
||||
pvfmad.lo %vix, 22, %v22, %vix
|
||||
|
||||
# CHECK-INST: pvfmad.up %vix, %v22, 22, %vix
|
||||
# CHECK-ENCODING: encoding: [0xff,0x00,0x16,0xff,0x00,0x16,0x90,0xe2]
|
||||
pvfmad.up %vix, %v22, 22, %vix
|
||||
|
||||
# CHECK-INST: pvfmad %v11, %v22, 63, %v20, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x14,0x00,0x16,0x0b,0x00,0x3f,0xdc,0xe2]
|
||||
pvfmad %v11, %v22, 63, %v20, %vm12
|
28
test/MC/VE/VFMP.s
Normal file
28
test/MC/VE/VFMP.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vfmul.d %v11, %s20, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x94,0x20,0xcd]
|
||||
vfmul.d %v11, %s20, %v22
|
||||
|
||||
# CHECK-INST: pvfmul.up %vix, %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0xff,0xff,0x00,0x00,0x80,0xcd]
|
||||
vfmul.s %vix, %vix, %vix
|
||||
|
||||
# CHECK-INST: pvfmul.lo %vix, 22, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0xff,0x00,0x16,0x60,0xcd]
|
||||
pvfmul.lo %vix, 22, %v22
|
||||
|
||||
# CHECK-INST: pvfmul.up %v11, 63, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x3f,0xab,0xcd]
|
||||
pvfmul.up %v11, 63, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvfmul.up %v11, %vix, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0xff,0x0b,0x00,0x00,0x8b,0xcd]
|
||||
pvfmul.up %v11, %vix, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvfmul %v12, %v20, %v22, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x14,0x0c,0x00,0x00,0xcc,0xcd]
|
||||
pvfmul %v12, %v20, %v22, %vm12
|
24
test/MC/VE/VFMSB.s
Normal file
24
test/MC/VE/VFMSB.s
Normal file
@ -0,0 +1,24 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vfmsb.d %v11, %s20, %v22, %v21
|
||||
# CHECK-ENCODING: encoding: [0x15,0x16,0x00,0x0b,0x00,0x94,0x20,0xf2]
|
||||
vfmsb.d %v11, %s20, %v22, %v21
|
||||
|
||||
# CHECK-INST: pvfmsb.up %vix, %vix, %vix, %v21
|
||||
# CHECK-ENCODING: encoding: [0x15,0xff,0xff,0xff,0x00,0x00,0x80,0xf2]
|
||||
vfmsb.s %vix, %vix, %vix, %v21
|
||||
|
||||
# CHECK-INST: pvfmsb.lo %vix, 22, %v22, %vix
|
||||
# CHECK-ENCODING: encoding: [0xff,0x16,0x00,0xff,0x00,0x16,0x60,0xf2]
|
||||
pvfmsb.lo %vix, 22, %v22, %vix
|
||||
|
||||
# CHECK-INST: pvfmsb.up %vix, %v22, 22, %vix
|
||||
# CHECK-ENCODING: encoding: [0xff,0x00,0x16,0xff,0x00,0x16,0x90,0xf2]
|
||||
pvfmsb.up %vix, %v22, 22, %vix
|
||||
|
||||
# CHECK-INST: pvfmsb %v11, %v22, 63, %v20, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x14,0x00,0x16,0x0b,0x00,0x3f,0xdc,0xf2]
|
||||
pvfmsb %v11, %v22, 63, %v20, %vm12
|
24
test/MC/VE/VFNMAD.s
Normal file
24
test/MC/VE/VFNMAD.s
Normal file
@ -0,0 +1,24 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vfnmad.d %v11, %s20, %v22, %v21
|
||||
# CHECK-ENCODING: encoding: [0x15,0x16,0x00,0x0b,0x00,0x94,0x20,0xe3]
|
||||
vfnmad.d %v11, %s20, %v22, %v21
|
||||
|
||||
# CHECK-INST: pvfnmad.up %vix, %vix, %vix, %v21
|
||||
# CHECK-ENCODING: encoding: [0x15,0xff,0xff,0xff,0x00,0x00,0x80,0xe3]
|
||||
vfnmad.s %vix, %vix, %vix, %v21
|
||||
|
||||
# CHECK-INST: pvfnmad.lo %vix, 22, %v22, %vix
|
||||
# CHECK-ENCODING: encoding: [0xff,0x16,0x00,0xff,0x00,0x16,0x60,0xe3]
|
||||
pvfnmad.lo %vix, 22, %v22, %vix
|
||||
|
||||
# CHECK-INST: pvfnmad.up %vix, %v22, 22, %vix
|
||||
# CHECK-ENCODING: encoding: [0xff,0x00,0x16,0xff,0x00,0x16,0x90,0xe3]
|
||||
pvfnmad.up %vix, %v22, 22, %vix
|
||||
|
||||
# CHECK-INST: pvfnmad %v11, %v22, 63, %v20, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x14,0x00,0x16,0x0b,0x00,0x3f,0xdc,0xe3]
|
||||
pvfnmad %v11, %v22, 63, %v20, %vm12
|
24
test/MC/VE/VFNMSB.s
Normal file
24
test/MC/VE/VFNMSB.s
Normal file
@ -0,0 +1,24 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vfnmsb.d %v11, %s20, %v22, %v21
|
||||
# CHECK-ENCODING: encoding: [0x15,0x16,0x00,0x0b,0x00,0x94,0x20,0xf3]
|
||||
vfnmsb.d %v11, %s20, %v22, %v21
|
||||
|
||||
# CHECK-INST: pvfnmsb.up %vix, %vix, %vix, %v21
|
||||
# CHECK-ENCODING: encoding: [0x15,0xff,0xff,0xff,0x00,0x00,0x80,0xf3]
|
||||
vfnmsb.s %vix, %vix, %vix, %v21
|
||||
|
||||
# CHECK-INST: pvfnmsb.lo %vix, 22, %v22, %vix
|
||||
# CHECK-ENCODING: encoding: [0xff,0x16,0x00,0xff,0x00,0x16,0x60,0xf3]
|
||||
pvfnmsb.lo %vix, 22, %v22, %vix
|
||||
|
||||
# CHECK-INST: pvfnmsb.up %vix, %v22, 22, %vix
|
||||
# CHECK-ENCODING: encoding: [0xff,0x00,0x16,0xff,0x00,0x16,0x90,0xf3]
|
||||
pvfnmsb.up %vix, %v22, 22, %vix
|
||||
|
||||
# CHECK-INST: pvfnmsb %v11, %v22, 63, %v20, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x14,0x00,0x16,0x0b,0x00,0x3f,0xdc,0xf3]
|
||||
pvfnmsb %v11, %v22, 63, %v20, %vm12
|
28
test/MC/VE/VFSB.s
Normal file
28
test/MC/VE/VFSB.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vfsub.d %v11, %s20, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x94,0x20,0xdc]
|
||||
vfsub.d %v11, %s20, %v22
|
||||
|
||||
# CHECK-INST: pvfsub.up %vix, %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0xff,0xff,0x00,0x00,0x80,0xdc]
|
||||
vfsub.s %vix, %vix, %vix
|
||||
|
||||
# CHECK-INST: pvfsub.lo %vix, 22, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0xff,0x00,0x16,0x60,0xdc]
|
||||
pvfsub.lo %vix, 22, %v22
|
||||
|
||||
# CHECK-INST: pvfsub.up %v11, 63, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x00,0x0b,0x00,0x3f,0xab,0xdc]
|
||||
pvfsub.up %v11, 63, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvfsub.up %v11, %vix, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0xff,0x0b,0x00,0x00,0x8b,0xdc]
|
||||
pvfsub.up %v11, %vix, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvfsub %v12, %v20, %v22, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x14,0x0c,0x00,0x00,0xcc,0xdc]
|
||||
pvfsub %v12, %v20, %v22, %vm12
|
28
test/MC/VE/VFSQRT.s
Normal file
28
test/MC/VE/VFSQRT.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vfsqrt.d %v11, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x00,0xed]
|
||||
vfsqrt.d %v11, %v22
|
||||
|
||||
# CHECK-INST: vfsqrt.d %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xed]
|
||||
vfsqrt.d %vix, %vix
|
||||
|
||||
# CHECK-INST: vfsqrt.s %vix, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x80,0xed]
|
||||
vfsqrt.s %vix, %v22
|
||||
|
||||
# CHECK-INST: vfsqrt.s %v11, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x8b,0xed]
|
||||
vfsqrt.s %v11, %v22, %vm11
|
||||
|
||||
# CHECK-INST: vfsqrt.s %v11, %vix, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x8b,0xed]
|
||||
vfsqrt.s %v11, %vix, %vm11
|
||||
|
||||
# CHECK-INST: vfsqrt.s %v12, %v20, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x14,0x0c,0x00,0x00,0x8c,0xed]
|
||||
vfsqrt.s %v12, %v20, %vm12
|
28
test/MC/VE/VRCP.s
Normal file
28
test/MC/VE/VRCP.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vrcp.d %v11, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x00,0xe1]
|
||||
vrcp.d %v11, %v22
|
||||
|
||||
# CHECK-INST: pvrcp.up %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x80,0xe1]
|
||||
vrcp.s %vix, %vix
|
||||
|
||||
# CHECK-INST: pvrcp.lo %vix, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x40,0xe1]
|
||||
pvrcp.lo %vix, %v22
|
||||
|
||||
# CHECK-INST: pvrcp.up %v11, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x8b,0xe1]
|
||||
pvrcp.up %v11, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvrcp.up %v11, %vix, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x8b,0xe1]
|
||||
pvrcp.up %v11, %vix, %vm11
|
||||
|
||||
# CHECK-INST: pvrcp %v12, %v20, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x14,0x0c,0x00,0x00,0xcc,0xe1]
|
||||
pvrcp %v12, %v20, %vm12
|
28
test/MC/VE/VRSQRT.s
Normal file
28
test/MC/VE/VRSQRT.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vrsqrt.d %v11, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x00,0xf1]
|
||||
vrsqrt.d %v11, %v22
|
||||
|
||||
# CHECK-INST: pvrsqrt.up %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x80,0xf1]
|
||||
vrsqrt.s %vix, %vix
|
||||
|
||||
# CHECK-INST: pvrsqrt.lo %vix, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x40,0xf1]
|
||||
pvrsqrt.lo %vix, %v22
|
||||
|
||||
# CHECK-INST: pvrsqrt.up %v11, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x8b,0xf1]
|
||||
pvrsqrt.up %v11, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvrsqrt.up %v11, %vix, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x8b,0xf1]
|
||||
pvrsqrt.up %v11, %vix, %vm11
|
||||
|
||||
# CHECK-INST: pvrsqrt %v12, %v20, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x14,0x0c,0x00,0x00,0xcc,0xf1]
|
||||
pvrsqrt %v12, %v20, %vm12
|
28
test/MC/VE/VRSQRTNEX.s
Normal file
28
test/MC/VE/VRSQRTNEX.s
Normal file
@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple=ve --show-encoding < %s \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
|
||||
# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
|
||||
# RUN: | FileCheck %s --check-prefixes=CHECK-INST
|
||||
|
||||
# CHECK-INST: vrsqrt.d.nex %v11, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x10,0xf1]
|
||||
vrsqrt.d.nex %v11, %v22
|
||||
|
||||
# CHECK-INST: pvrsqrt.up.nex %vix, %vix
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x90,0xf1]
|
||||
vrsqrt.s.nex %vix, %vix
|
||||
|
||||
# CHECK-INST: pvrsqrt.lo.nex %vix, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x50,0xf1]
|
||||
pvrsqrt.lo.nex %vix, %v22
|
||||
|
||||
# CHECK-INST: pvrsqrt.up.nex %v11, %v22, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x9b,0xf1]
|
||||
pvrsqrt.up.nex %v11, %v22, %vm11
|
||||
|
||||
# CHECK-INST: pvrsqrt.up.nex %v11, %vix, %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x9b,0xf1]
|
||||
pvrsqrt.up.nex %v11, %vix, %vm11
|
||||
|
||||
# CHECK-INST: pvrsqrt.nex %v12, %v20, %vm12
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x14,0x0c,0x00,0x00,0xdc,0xf1]
|
||||
pvrsqrt.nex %v12, %v20, %vm12
|
Loading…
x
Reference in New Issue
Block a user