mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
[VE] Add vector mask operation instructions
Add VFMK/VFMS/VFMF/ANDM/ORM/XORM/EQVM/NNDM/NEGM/PCVM/LZVM/TOVM isntructions. Add regression tests too. Also add new patterns to parse VFMK/VFMS/VFMF mnemonics. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D90297
This commit is contained in:
parent
2d226e1751
commit
3a4865dc0a
@ -939,6 +939,14 @@ StringRef VEAsmParser::splitMnemonic(StringRef Name, SMLoc NameLoc,
|
||||
Mnemonic = parseRD(Name, 12, NameLoc, Operands);
|
||||
} else if (Name.startswith("pvcvt.w.s")) {
|
||||
Mnemonic = parseRD(Name, 9, NameLoc, Operands);
|
||||
} else if (Name.startswith("vfmk.l.") || Name.startswith("vfmk.w.") ||
|
||||
Name.startswith("vfmk.d.") || Name.startswith("vfmk.s.")) {
|
||||
bool ICC = Name[5] == 'l' || Name[5] == 'w' ? true : false;
|
||||
Mnemonic = parseCC(Name, 7, Name.size(), ICC, true, NameLoc, Operands);
|
||||
} else if (Name.startswith("pvfmk.w.lo.") || Name.startswith("pvfmk.w.up.") ||
|
||||
Name.startswith("pvfmk.s.lo.") || Name.startswith("pvfmk.s.up.")) {
|
||||
bool ICC = Name[6] == 'l' || Name[6] == 'w' ? true : false;
|
||||
Mnemonic = parseCC(Name, 11, Name.size(), ICC, true, NameLoc, Operands);
|
||||
} else {
|
||||
Operands->push_back(VEOperand::CreateToken(Mnemonic, NameLoc));
|
||||
}
|
||||
|
@ -654,6 +654,81 @@ multiclass RVSHFm<string opcStr, bits<8>opc, RegisterClass RC,
|
||||
let cy = 0 in defm vvi : RVlm<opcStr, ", $vy, $vz, $sy", opc, RC,
|
||||
(ins RC:$vy, RC:$vz, SIMM:$sy)>;
|
||||
}
|
||||
// Multiclass for generic mask calculation
|
||||
let vx = ?, hasSideEffects = 0, Uses = [VL] in
|
||||
multiclass RVMKbm<string opcStr, string argStr, bits<8>opc, dag dag_out,
|
||||
dag dag_in> {
|
||||
def "" : RV<opc, dag_out, dag_in, !strconcat(opcStr, argStr)>;
|
||||
let DisableEncoding = "$vl", isCodeGenOnly = 1, VE_VLInUse = 1 in {
|
||||
def l : RV<opc, dag_out, !con(dag_in, (ins I32:$vl)),
|
||||
!strconcat(opcStr, argStr)>;
|
||||
def L : RV<opc, dag_out, !con(dag_in, (ins VLS:$vl)),
|
||||
!strconcat(opcStr, argStr)>;
|
||||
}
|
||||
}
|
||||
multiclass RVMKlm<string opcStr, string argStr, bits<8>opc, RegisterClass RCM,
|
||||
dag dag_in> {
|
||||
defm "" : RVMKbm<opcStr, " $vx"#argStr, opc, (outs RCM:$vx), dag_in>;
|
||||
let m = ?, VE_VLWithMask = 1 in
|
||||
defm m : RVMKbm<opcStr, " $vx"#argStr#", $m", opc, (outs RCM:$vx),
|
||||
!con(dag_in, (ins RCM:$m))>;
|
||||
}
|
||||
// Generic RV multiclass for mask calculation with a condition.
|
||||
// e.g. VFMK, VFMS, and VFMF
|
||||
let cy = 0, sy = 0 in
|
||||
multiclass RVMKom<string opcStr, bits<8> opc, RegisterClass RC,
|
||||
RegisterClass RCM> {
|
||||
let vy = ?, vz = ?, VE_VLIndex = 3 in
|
||||
defm v : RVMKlm<opcStr#"$vy", ", $vz", opc, RCM, (ins CCOp:$vy, RC:$vz)>;
|
||||
let vy = 15 /* AT */, VE_VLIndex = 1 in
|
||||
defm a : RVMKlm<opcStr#"at", "", opc, RCM, (ins)>;
|
||||
let vy = 0 /* AF */, VE_VLIndex = 1 in
|
||||
defm na : RVMKlm<opcStr#"af", "", opc, RCM, (ins)>;
|
||||
}
|
||||
multiclass RVMKm<string opcStr, bits<8> opc, RegisterClass RC,
|
||||
RegisterClass RCM> {
|
||||
defm "" : RVMKom<opcStr, opc, RC, RCM>;
|
||||
}
|
||||
// Generic RV multiclass for mask calculation with 2 arguments.
|
||||
// e.g. ANDM, ORM, XORM, and etc.
|
||||
let cy = 0, sy = 0, vx = ?, vy = ?, vz = ?, hasSideEffects = 0 in
|
||||
multiclass RVM2m<string opcStr, bits<8> opc, RegisterClass RCM> {
|
||||
def mm : RV<opc, (outs RCM:$vx), (ins RCM:$vy, RCM:$vz),
|
||||
!strconcat(opcStr, " $vx, $vy, $vz")>;
|
||||
}
|
||||
// Generic RV multiclass for mask calculation with 1 argument.
|
||||
// e.g. NEGM
|
||||
let cy = 0, sy = 0, vx = ?, vy = ?, hasSideEffects = 0 in
|
||||
multiclass RVM1m<string opcStr, bits<8> opc, RegisterClass RCM> {
|
||||
def m : RV<opc, (outs RCM:$vx), (ins RCM:$vy),
|
||||
!strconcat(opcStr, " $vx, $vy")>;
|
||||
}
|
||||
// Generic RV multiclass for mask calculation with 1 argument.
|
||||
// e.g. PCVM, LZVM, and TOVM
|
||||
let cy = 0, sy = 0, vy = ?, hasSideEffects = 0, Uses = [VL] in
|
||||
multiclass RVMSbm<string opcStr, string argStr, bits<8>opc, dag dag_in> {
|
||||
def "" : RV<opc, (outs I64:$sx), dag_in,
|
||||
!strconcat(opcStr, " $sx,", argStr)> {
|
||||
bits<7> sx;
|
||||
let Inst{54-48} = sx;
|
||||
}
|
||||
let DisableEncoding = "$vl", isCodeGenOnly = 1, VE_VLInUse = 1 in {
|
||||
def l : RV<opc, (outs I64:$sx), !con(dag_in, (ins I32:$vl)),
|
||||
!strconcat(opcStr, " $sx,", argStr)> {
|
||||
bits<7> sx;
|
||||
let Inst{54-48} = sx;
|
||||
}
|
||||
def L : RV<opc, (outs I64:$sx), !con(dag_in, (ins VLS:$vl)),
|
||||
!strconcat(opcStr, " $sx,", argStr)> {
|
||||
bits<7> sx;
|
||||
let Inst{54-48} = sx;
|
||||
}
|
||||
}
|
||||
}
|
||||
let VE_VLIndex = 2 in
|
||||
multiclass RVMSm<string opcStr, bits<8> opc, RegisterClass RCM> {
|
||||
defm m : RVMSbm<opcStr, " $vy", opc, (ins RCM:$vy)>;
|
||||
}
|
||||
|
||||
// Section 8.10.1 - VADD (Vector Add)
|
||||
let cx = 0, cx2 = 0 in
|
||||
@ -1290,3 +1365,65 @@ defm VCP : RV1m<"vcp", 0x8d, V64, VM>;
|
||||
|
||||
// Section 8.16.4 - VEX (Vector Expand)
|
||||
defm VEX : RV1m<"vex", 0x9d, V64, VM>;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Section 8.17 - Vector Mask Operation Instructions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Section 8.17.1 - VFMK (Vector Form Mask)
|
||||
defm VFMKL : RVMKm<"vfmk.l.", 0xb4, V64, VM>;
|
||||
def : MnemonicAlias<"vfmk.l", "vfmk.l.at">;
|
||||
|
||||
// Section 8.17.2 - VFMS (Vector Form Mask Single)
|
||||
defm VFMKW : RVMKm<"vfmk.w.", 0xb5, V64, VM>;
|
||||
let isCodeGenOnly = 1 in defm PVFMKWLO : RVMKm<"vfmk.w.", 0xb5, V64, VM>;
|
||||
let cx = 1 in defm PVFMKWUP : RVMKm<"pvfmk.w.up.", 0xb5, V64, VM>;
|
||||
def : MnemonicAlias<"vfmk.w", "vfmk.w.at">;
|
||||
def : MnemonicAlias<"pvfmk.w.up", "pvfmk.w.up.at">;
|
||||
def : MnemonicAlias<"pvfmk.w.lo", "vfmk.w.at">;
|
||||
foreach CC = [ "af", "gt", "lt", "ne", "eq", "ge", "le", "at" ] in {
|
||||
def : MnemonicAlias<"pvfmk.w.lo."#CC, "vfmk.w."#CC>;
|
||||
}
|
||||
|
||||
// Section 8.17.3 - VFMF (Vector Form Mask Floating Point)
|
||||
defm VFMKD : RVMKm<"vfmk.d.", 0xb6, V64, VM>;
|
||||
let cx2 = 1 in defm PVFMKSLO : RVMKm<"pvfmk.s.lo.", 0xb6, V64, VM>;
|
||||
let cx = 1 in {
|
||||
defm PVFMKSUP : RVMKm<"pvfmk.s.up.", 0xb6, V64, VM>;
|
||||
let isCodeGenOnly = 1 in defm VFMKS : RVMKm<"vfmk.s.", 0xb6, V64, VM>;
|
||||
}
|
||||
def : MnemonicAlias<"vfmk.d", "vfmk.d.at">;
|
||||
def : MnemonicAlias<"pvfmk.s.lo", "pvfmk.s.lo.at">;
|
||||
def : MnemonicAlias<"pvfmk.s.up", "pvfmk.s.up.at">;
|
||||
def : MnemonicAlias<"vfmk.s", "pvfmk.s.up.at">;
|
||||
foreach CC = [ "af", "gt", "lt", "ne", "eq", "ge", "le", "at", "num", "nan",
|
||||
"gtnan", "ltnan", "nenan", "eqnan", "genan", "lenan" ] in {
|
||||
def : MnemonicAlias<"vfmk.s."#CC, "pvfmk.s.up."#CC>;
|
||||
}
|
||||
|
||||
// Section 8.17.4 - ANDM (And VM)
|
||||
defm ANDM : RVM2m<"andm", 0x84, VM>;
|
||||
|
||||
// Section 8.17.5 - ORM (Or VM)
|
||||
defm ORM : RVM2m<"orm", 0x85, VM>;
|
||||
|
||||
// Section 8.17.6 - XORM (Exclusive Or VM)
|
||||
defm XORM : RVM2m<"xorm", 0x86, VM>;
|
||||
|
||||
// Section 8.17.7 - EQVM (Equivalence VM)
|
||||
defm EQVM : RVM2m<"eqvm", 0x87, VM>;
|
||||
|
||||
// Section 8.17.8 - NNDM (Negate And VM)
|
||||
defm NNDM : RVM2m<"nndm", 0x94, VM>;
|
||||
|
||||
// Section 8.17.9 - NEGM (Negate VM)
|
||||
defm NEGM : RVM1m<"negm", 0x95, VM>;
|
||||
|
||||
// Section 8.17.10 - PCVM (Population Count of VM)
|
||||
defm PCVM : RVMSm<"pcvm", 0xa4, VM>;
|
||||
|
||||
// Section 8.17.11 - LZVM (Leading Zero of VM)
|
||||
defm LZVM : RVMSm<"lzvm", 0xa5, VM>;
|
||||
|
||||
// Section 8.17.12 - TOVM (Trailing One of VM)
|
||||
defm TOVM : RVMSm<"tovm", 0xa6, VM>;
|
||||
|
16
test/MC/VE/ANDM.s
Normal file
16
test/MC/VE/ANDM.s
Normal file
@ -0,0 +1,16 @@
|
||||
# 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: andm %vm0, %vm0, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84]
|
||||
andm %vm0, %vm0, %vm0
|
||||
|
||||
# CHECK-INST: andm %vm11, %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x0f,0x01,0x0b,0x00,0x00,0x00,0x84]
|
||||
andm %vm11, %vm1, %vm15
|
||||
|
||||
# CHECK-INST: andm %vm11, %vm15, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0x84]
|
||||
andm %vm11, %vm15, %vm0
|
16
test/MC/VE/EQVM.s
Normal file
16
test/MC/VE/EQVM.s
Normal file
@ -0,0 +1,16 @@
|
||||
# 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: eqvm %vm0, %vm0, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87]
|
||||
eqvm %vm0, %vm0, %vm0
|
||||
|
||||
# CHECK-INST: eqvm %vm11, %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x0f,0x01,0x0b,0x00,0x00,0x00,0x87]
|
||||
eqvm %vm11, %vm1, %vm15
|
||||
|
||||
# CHECK-INST: eqvm %vm11, %vm15, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0x87]
|
||||
eqvm %vm11, %vm15, %vm0
|
16
test/MC/VE/LZVM.s
Normal file
16
test/MC/VE/LZVM.s
Normal file
@ -0,0 +1,16 @@
|
||||
# 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: lzvm %s11, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0xa5]
|
||||
lzvm %s11, %vm0
|
||||
|
||||
# CHECK-INST: lzvm %s11, %vm1
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x01,0x00,0x00,0x00,0x0b,0xa5]
|
||||
lzvm %s11, %vm1
|
||||
|
||||
# CHECK-INST: lzvm %s11, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x00,0x00,0x00,0x0b,0xa5]
|
||||
lzvm %s11, %vm15
|
16
test/MC/VE/NEGM.s
Normal file
16
test/MC/VE/NEGM.s
Normal file
@ -0,0 +1,16 @@
|
||||
# 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: negm %vm0, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x95]
|
||||
negm %vm0, %vm0
|
||||
|
||||
# CHECK-INST: negm %vm11, %vm1
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x01,0x0b,0x00,0x00,0x00,0x95]
|
||||
negm %vm11, %vm1
|
||||
|
||||
# CHECK-INST: negm %vm11, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0x95]
|
||||
negm %vm11, %vm15
|
16
test/MC/VE/NNDM.s
Normal file
16
test/MC/VE/NNDM.s
Normal file
@ -0,0 +1,16 @@
|
||||
# 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: nndm %vm0, %vm0, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x94]
|
||||
nndm %vm0, %vm0, %vm0
|
||||
|
||||
# CHECK-INST: nndm %vm11, %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x0f,0x01,0x0b,0x00,0x00,0x00,0x94]
|
||||
nndm %vm11, %vm1, %vm15
|
||||
|
||||
# CHECK-INST: nndm %vm11, %vm15, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0x94]
|
||||
nndm %vm11, %vm15, %vm0
|
16
test/MC/VE/ORM.s
Normal file
16
test/MC/VE/ORM.s
Normal file
@ -0,0 +1,16 @@
|
||||
# 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: orm %vm0, %vm0, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85]
|
||||
orm %vm0, %vm0, %vm0
|
||||
|
||||
# CHECK-INST: orm %vm11, %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x0f,0x01,0x0b,0x00,0x00,0x00,0x85]
|
||||
orm %vm11, %vm1, %vm15
|
||||
|
||||
# CHECK-INST: orm %vm11, %vm15, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0x85]
|
||||
orm %vm11, %vm15, %vm0
|
16
test/MC/VE/PCVM.s
Normal file
16
test/MC/VE/PCVM.s
Normal file
@ -0,0 +1,16 @@
|
||||
# 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: pcvm %s11, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0xa4]
|
||||
pcvm %s11, %vm0
|
||||
|
||||
# CHECK-INST: pcvm %s11, %vm1
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x01,0x00,0x00,0x00,0x0b,0xa4]
|
||||
pcvm %s11, %vm1
|
||||
|
||||
# CHECK-INST: pcvm %s11, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x00,0x00,0x00,0x0b,0xa4]
|
||||
pcvm %s11, %vm15
|
16
test/MC/VE/TOVM.s
Normal file
16
test/MC/VE/TOVM.s
Normal file
@ -0,0 +1,16 @@
|
||||
# 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: tovm %s11, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0xa6]
|
||||
tovm %s11, %vm0
|
||||
|
||||
# CHECK-INST: tovm %s11, %vm1
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x01,0x00,0x00,0x00,0x0b,0xa6]
|
||||
tovm %s11, %vm1
|
||||
|
||||
# CHECK-INST: tovm %s11, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x00,0x00,0x00,0x0b,0xa6]
|
||||
tovm %s11, %vm15
|
276
test/MC/VE/VFMF.s
Normal file
276
test/MC/VE/VFMF.s
Normal file
@ -0,0 +1,276 @@
|
||||
# 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: vfmk.d.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0xb6]
|
||||
vfmk.d %vm11
|
||||
|
||||
# CHECK-INST: vfmk.d.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0xb6]
|
||||
vfmk.d.at %vm11
|
||||
|
||||
# CHECK-INST: vfmk.d.af %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x0f,0xb6]
|
||||
vfmk.d.af %vm1, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.d.gt %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x00,0xb6]
|
||||
vfmk.d.gt %vm12, %v22
|
||||
|
||||
# CHECK-INST: vfmk.d.lt %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x0f,0xb6]
|
||||
vfmk.d.lt %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.d.ne %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x00,0xb6]
|
||||
vfmk.d.ne %vm11, %v32
|
||||
|
||||
# CHECK-INST: vfmk.d.eq %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x0f,0xb6]
|
||||
vfmk.d.eq %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.d.ge %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x00,0xb6]
|
||||
vfmk.d.ge %vm12, %v22
|
||||
|
||||
# CHECK-INST: vfmk.d.le %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x0f,0xb6]
|
||||
vfmk.d.le %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.d.num %vm11, %v45
|
||||
# CHECK-ENCODING: encoding: [0x00,0x2d,0x07,0x0b,0x00,0x00,0x00,0xb6]
|
||||
vfmk.d.num %vm11, %v45
|
||||
|
||||
# CHECK-INST: vfmk.d.nan %vm1, %v50, %vm14
|
||||
# CHECK-ENCODING: encoding: [0x00,0x32,0x08,0x01,0x00,0x00,0x0e,0xb6]
|
||||
vfmk.d.nan %vm1, %v50, %vm14
|
||||
|
||||
# CHECK-INST: vfmk.d.gtnan %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x09,0x0c,0x00,0x00,0x00,0xb6]
|
||||
vfmk.d.gtnan %vm12, %v22
|
||||
|
||||
# CHECK-INST: vfmk.d.ltnan %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0a,0x0c,0x00,0x00,0x0f,0xb6]
|
||||
vfmk.d.ltnan %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.d.nenan %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x0b,0x0b,0x00,0x00,0x00,0xb6]
|
||||
vfmk.d.nenan %vm11, %v32
|
||||
|
||||
# CHECK-INST: vfmk.d.eqnan %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0c,0x01,0x00,0x00,0x0f,0xb6]
|
||||
vfmk.d.eqnan %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.d.genan %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x0d,0x0c,0x00,0x00,0x00,0xb6]
|
||||
vfmk.d.genan %vm12, %v22
|
||||
|
||||
# CHECK-INST: vfmk.d.lenan %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0e,0x0c,0x00,0x00,0x0f,0xb6]
|
||||
vfmk.d.lenan %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x80,0xb6]
|
||||
vfmk.s %vm11
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x80,0xb6]
|
||||
vfmk.s.at %vm11
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.af %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x8f,0xb6]
|
||||
vfmk.s.af %vm1, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.gt %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x80,0xb6]
|
||||
vfmk.s.gt %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.lt %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x8f,0xb6]
|
||||
vfmk.s.lt %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.ne %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x80,0xb6]
|
||||
vfmk.s.ne %vm11, %v32
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.eq %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x8f,0xb6]
|
||||
vfmk.s.eq %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.ge %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x80,0xb6]
|
||||
vfmk.s.ge %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.le %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x8f,0xb6]
|
||||
vfmk.s.le %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.num %vm11, %v45
|
||||
# CHECK-ENCODING: encoding: [0x00,0x2d,0x07,0x0b,0x00,0x00,0x80,0xb6]
|
||||
vfmk.s.num %vm11, %v45
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.nan %vm1, %v50, %vm14
|
||||
# CHECK-ENCODING: encoding: [0x00,0x32,0x08,0x01,0x00,0x00,0x8e,0xb6]
|
||||
vfmk.s.nan %vm1, %v50, %vm14
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.gtnan %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x09,0x0c,0x00,0x00,0x80,0xb6]
|
||||
vfmk.s.gtnan %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.ltnan %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0a,0x0c,0x00,0x00,0x8f,0xb6]
|
||||
vfmk.s.ltnan %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.nenan %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x0b,0x0b,0x00,0x00,0x80,0xb6]
|
||||
vfmk.s.nenan %vm11, %v32
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.eqnan %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0c,0x01,0x00,0x00,0x8f,0xb6]
|
||||
vfmk.s.eqnan %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.genan %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x0d,0x0c,0x00,0x00,0x80,0xb6]
|
||||
vfmk.s.genan %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.lenan %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0e,0x0c,0x00,0x00,0x8f,0xb6]
|
||||
vfmk.s.lenan %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x80,0xb6]
|
||||
pvfmk.s.up %vm11
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x80,0xb6]
|
||||
pvfmk.s.up.at %vm11
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.af %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x8f,0xb6]
|
||||
pvfmk.s.up.af %vm1, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.gt %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x80,0xb6]
|
||||
pvfmk.s.up.gt %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.lt %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x8f,0xb6]
|
||||
pvfmk.s.up.lt %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.ne %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x80,0xb6]
|
||||
pvfmk.s.up.ne %vm11, %v32
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.eq %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x8f,0xb6]
|
||||
pvfmk.s.up.eq %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.ge %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x80,0xb6]
|
||||
pvfmk.s.up.ge %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.le %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x8f,0xb6]
|
||||
pvfmk.s.up.le %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.num %vm11, %v45
|
||||
# CHECK-ENCODING: encoding: [0x00,0x2d,0x07,0x0b,0x00,0x00,0x80,0xb6]
|
||||
pvfmk.s.up.num %vm11, %v45
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.nan %vm1, %v50, %vm14
|
||||
# CHECK-ENCODING: encoding: [0x00,0x32,0x08,0x01,0x00,0x00,0x8e,0xb6]
|
||||
pvfmk.s.up.nan %vm1, %v50, %vm14
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.gtnan %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x09,0x0c,0x00,0x00,0x80,0xb6]
|
||||
pvfmk.s.up.gtnan %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.ltnan %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0a,0x0c,0x00,0x00,0x8f,0xb6]
|
||||
pvfmk.s.up.ltnan %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.nenan %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x0b,0x0b,0x00,0x00,0x80,0xb6]
|
||||
pvfmk.s.up.nenan %vm11, %v32
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.eqnan %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0c,0x01,0x00,0x00,0x8f,0xb6]
|
||||
pvfmk.s.up.eqnan %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.genan %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x0d,0x0c,0x00,0x00,0x80,0xb6]
|
||||
pvfmk.s.up.genan %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.up.lenan %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0e,0x0c,0x00,0x00,0x8f,0xb6]
|
||||
pvfmk.s.up.lenan %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x40,0xb6]
|
||||
pvfmk.s.lo %vm11
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x40,0xb6]
|
||||
pvfmk.s.lo.at %vm11
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.af %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x4f,0xb6]
|
||||
pvfmk.s.lo.af %vm1, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.gt %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x40,0xb6]
|
||||
pvfmk.s.lo.gt %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.lt %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x4f,0xb6]
|
||||
pvfmk.s.lo.lt %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.ne %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x40,0xb6]
|
||||
pvfmk.s.lo.ne %vm11, %v32
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.eq %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x4f,0xb6]
|
||||
pvfmk.s.lo.eq %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.ge %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x40,0xb6]
|
||||
pvfmk.s.lo.ge %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.le %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x4f,0xb6]
|
||||
pvfmk.s.lo.le %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.num %vm11, %v45
|
||||
# CHECK-ENCODING: encoding: [0x00,0x2d,0x07,0x0b,0x00,0x00,0x40,0xb6]
|
||||
pvfmk.s.lo.num %vm11, %v45
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.nan %vm1, %v50, %vm14
|
||||
# CHECK-ENCODING: encoding: [0x00,0x32,0x08,0x01,0x00,0x00,0x4e,0xb6]
|
||||
pvfmk.s.lo.nan %vm1, %v50, %vm14
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.gtnan %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x09,0x0c,0x00,0x00,0x40,0xb6]
|
||||
pvfmk.s.lo.gtnan %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.ltnan %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0a,0x0c,0x00,0x00,0x4f,0xb6]
|
||||
pvfmk.s.lo.ltnan %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.nenan %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x0b,0x0b,0x00,0x00,0x40,0xb6]
|
||||
pvfmk.s.lo.nenan %vm11, %v32
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.eqnan %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0c,0x01,0x00,0x00,0x4f,0xb6]
|
||||
pvfmk.s.lo.eqnan %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.genan %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x0d,0x0c,0x00,0x00,0x40,0xb6]
|
||||
pvfmk.s.lo.genan %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.s.lo.lenan %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x0e,0x0c,0x00,0x00,0x4f,0xb6]
|
||||
pvfmk.s.lo.lenan %vm12, %vix, %vm15
|
40
test/MC/VE/VFMK.s
Normal file
40
test/MC/VE/VFMK.s
Normal file
@ -0,0 +1,40 @@
|
||||
# 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: vfmk.l.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0xb4]
|
||||
vfmk.l %vm11
|
||||
|
||||
# CHECK-INST: vfmk.l.at %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x01,0x00,0x00,0x0f,0xb4]
|
||||
vfmk.l.at %vm1, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.l.af %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x0f,0xb4]
|
||||
vfmk.l.af %vm1, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.l.gt %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x00,0xb4]
|
||||
vfmk.l.gt %vm12, %v22
|
||||
|
||||
# CHECK-INST: vfmk.l.lt %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x0f,0xb4]
|
||||
vfmk.l.lt %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.l.ne %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x00,0xb4]
|
||||
vfmk.l.ne %vm11, %v32
|
||||
|
||||
# CHECK-INST: vfmk.l.eq %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x0f,0xb4]
|
||||
vfmk.l.eq %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.l.ge %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x00,0xb4]
|
||||
vfmk.l.ge %vm12, %v22
|
||||
|
||||
# CHECK-INST: vfmk.l.le %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x0f,0xb4]
|
||||
vfmk.l.le %vm12, %vix, %vm15
|
112
test/MC/VE/VFMS.s
Normal file
112
test/MC/VE/VFMS.s
Normal file
@ -0,0 +1,112 @@
|
||||
# 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: vfmk.w.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0xb5]
|
||||
vfmk.w %vm11
|
||||
|
||||
# CHECK-INST: vfmk.w.at %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x01,0x00,0x00,0x0f,0xb5]
|
||||
vfmk.w.at %vm1, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.w.af %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x0f,0xb5]
|
||||
vfmk.w.af %vm1, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.w.gt %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x00,0xb5]
|
||||
vfmk.w.gt %vm12, %v22
|
||||
|
||||
# CHECK-INST: vfmk.w.lt %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x0f,0xb5]
|
||||
vfmk.w.lt %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.w.ne %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x00,0xb5]
|
||||
vfmk.w.ne %vm11, %v32
|
||||
|
||||
# CHECK-INST: vfmk.w.eq %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x0f,0xb5]
|
||||
vfmk.w.eq %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.w.ge %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x00,0xb5]
|
||||
vfmk.w.ge %vm12, %v22
|
||||
|
||||
# CHECK-INST: vfmk.w.le %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x0f,0xb5]
|
||||
vfmk.w.le %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.w.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0xb5]
|
||||
pvfmk.w.lo %vm11
|
||||
|
||||
# CHECK-INST: vfmk.w.at %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x01,0x00,0x00,0x0f,0xb5]
|
||||
pvfmk.w.lo.at %vm1, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.w.af %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x0f,0xb5]
|
||||
pvfmk.w.lo.af %vm1, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.w.gt %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x00,0xb5]
|
||||
pvfmk.w.lo.gt %vm12, %v22
|
||||
|
||||
# CHECK-INST: vfmk.w.lt %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x0f,0xb5]
|
||||
pvfmk.w.lo.lt %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.w.ne %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x00,0xb5]
|
||||
pvfmk.w.lo.ne %vm11, %v32
|
||||
|
||||
# CHECK-INST: vfmk.w.eq %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x0f,0xb5]
|
||||
pvfmk.w.lo.eq %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: vfmk.w.ge %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x00,0xb5]
|
||||
pvfmk.w.lo.ge %vm12, %v22
|
||||
|
||||
# CHECK-INST: vfmk.w.le %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x0f,0xb5]
|
||||
pvfmk.w.lo.le %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.w.up.at %vm11
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x80,0xb5]
|
||||
pvfmk.w.up %vm11
|
||||
|
||||
# CHECK-INST: pvfmk.w.up.at %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x01,0x00,0x00,0x8f,0xb5]
|
||||
pvfmk.w.up.at %vm1, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.w.up.af %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x01,0x00,0x00,0x8f,0xb5]
|
||||
pvfmk.w.up.af %vm1, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.w.up.gt %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x01,0x0c,0x00,0x00,0x80,0xb5]
|
||||
pvfmk.w.up.gt %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.w.up.lt %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x02,0x0c,0x00,0x00,0x8f,0xb5]
|
||||
pvfmk.w.up.lt %vm12, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.w.up.ne %vm11, %v32
|
||||
# CHECK-ENCODING: encoding: [0x00,0x20,0x03,0x0b,0x00,0x00,0x80,0xb5]
|
||||
pvfmk.w.up.ne %vm11, %v32
|
||||
|
||||
# CHECK-INST: pvfmk.w.up.eq %vm1, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x04,0x01,0x00,0x00,0x8f,0xb5]
|
||||
pvfmk.w.up.eq %vm1, %vix, %vm15
|
||||
|
||||
# CHECK-INST: pvfmk.w.up.ge %vm12, %v22
|
||||
# CHECK-ENCODING: encoding: [0x00,0x16,0x05,0x0c,0x00,0x00,0x80,0xb5]
|
||||
pvfmk.w.up.ge %vm12, %v22
|
||||
|
||||
# CHECK-INST: pvfmk.w.up.le %vm12, %vix, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0xff,0x06,0x0c,0x00,0x00,0x8f,0xb5]
|
||||
pvfmk.w.up.le %vm12, %vix, %vm15
|
16
test/MC/VE/XORM.s
Normal file
16
test/MC/VE/XORM.s
Normal file
@ -0,0 +1,16 @@
|
||||
# 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: xorm %vm0, %vm0, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86]
|
||||
xorm %vm0, %vm0, %vm0
|
||||
|
||||
# CHECK-INST: xorm %vm11, %vm1, %vm15
|
||||
# CHECK-ENCODING: encoding: [0x00,0x0f,0x01,0x0b,0x00,0x00,0x00,0x86]
|
||||
xorm %vm11, %vm1, %vm15
|
||||
|
||||
# CHECK-INST: xorm %vm11, %vm15, %vm0
|
||||
# CHECK-ENCODING: encoding: [0x00,0x00,0x0f,0x0b,0x00,0x00,0x00,0x86]
|
||||
xorm %vm11, %vm15, %vm0
|
Loading…
Reference in New Issue
Block a user