MipsMSAInstrInfo.td revision 09c7f4026afa46ca7ca67d47179013a340a5e944
124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===- MipsMSAInstrInfo.td - MSA ASE instructions -*- tablegen ------------*-=// 224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// The LLVM Compiler Infrastructure 424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source 624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details. 724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 10d891f9b872103235cfd2ed452c6f14a4394d9b3aDaniel Malea// This file describes Mips MSA ASE instructions. 11d891f9b872103235cfd2ed452c6f14a4394d9b3aDaniel Malea// 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef SDT_MipsVecCond : SDTypeProfile<1, 1, [SDTCisInt<0>, SDTCisVec<1>]>; 1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef SDT_VSetCC : SDTypeProfile<1, 3, [SDTCisInt<0>, 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SDTCisInt<1>, 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SDTCisSameAs<1, 2>, 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SDTCisVT<3, OtherVT>]>; 19861efb3f6e225e45c45511d6da894633b36025a1Caroline Ticedef SDT_VFSetCC : SDTypeProfile<1, 3, [SDTCisInt<0>, 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SDTCisFP<1>, 21861efb3f6e225e45c45511d6da894633b36025a1Caroline Tice SDTCisSameAs<1, 2>, 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SDTCisVT<3, OtherVT>]>; 2349ce8969d3154e1560106cfe530444c09410f217Greg Claytondef SDT_VSHF : SDTypeProfile<1, 3, [SDTCisInt<0>, SDTCisVec<0>, 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SDTCisInt<1>, SDTCisVec<1>, 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SDTCisSameAs<0, 2>, SDTCisSameAs<2, 3>]>; 26f15996eea072cdaa8a092f22d3a1212b3d95f0ecGreg Claytondef SDT_SHF : SDTypeProfile<1, 2, [SDTCisInt<0>, SDTCisVec<0>, 276e4c5ce0f697eb9899a54854a2a9004e961b0de2Caroline Tice SDTCisVT<1, i32>, SDTCisSameAs<0, 2>]>; 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef SDT_ILV : SDTypeProfile<1, 2, [SDTCisInt<0>, SDTCisVec<0>, 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>]>; 300baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 3137f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Claytondef MipsVAllNonZero : SDNode<"MipsISD::VALL_NONZERO", SDT_MipsVecCond>; 32642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamdef MipsVAnyNonZero : SDNode<"MipsISD::VANY_NONZERO", SDT_MipsVecCond>; 33642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamdef MipsVAllZero : SDNode<"MipsISD::VALL_ZERO", SDT_MipsVecCond>; 34642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamdef MipsVAnyZero : SDNode<"MipsISD::VANY_ZERO", SDT_MipsVecCond>; 35e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef MipsVSMax : SDNode<"MipsISD::VSMAX", SDTIntBinOp, 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner [SDNPCommutative, SDNPAssociative]>; 37643ee7301b5d4b05c321d906bc0d7ff11f571295Greg Claytondef MipsVSMin : SDNode<"MipsISD::VSMIN", SDTIntBinOp, 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner [SDNPCommutative, SDNPAssociative]>; 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef MipsVUMax : SDNode<"MipsISD::VUMAX", SDTIntBinOp, 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner [SDNPCommutative, SDNPAssociative]>; 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef MipsVUMin : SDNode<"MipsISD::VUMIN", SDTIntBinOp, 42d21d98b3cd51d9109631ad1605ee7f7dbac3cfbbJim Ingham [SDNPCommutative, SDNPAssociative]>; 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef MipsVNOR : SDNode<"MipsISD::VNOR", SDTIntBinOp, 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner [SDNPCommutative, SDNPAssociative]>; 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef MipsVSHF : SDNode<"MipsISD::VSHF", SDT_VSHF>; 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef MipsSHF : SDNode<"MipsISD::SHF", SDT_SHF>; 4773844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef MipsILVEV : SDNode<"MipsISD::ILVEV", SDT_ILV>; 4873844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef MipsILVOD : SDNode<"MipsISD::ILVOD", SDT_ILV>; 4973844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef MipsILVL : SDNode<"MipsISD::ILVL", SDT_ILV>; 5073844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef MipsILVR : SDNode<"MipsISD::ILVR", SDT_ILV>; 5173844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef MipsPCKEV : SDNode<"MipsISD::PCKEV", SDT_ILV>; 5273844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef MipsPCKOD : SDNode<"MipsISD::PCKOD", SDT_ILV>; 5373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 5473844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vsetcc : SDNode<"ISD::SETCC", SDT_VSetCC>; 5573844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetcc : SDNode<"ISD::SETCC", SDT_VFSetCC>; 5673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 5773844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef MipsVExtractSExt : SDNode<"MipsISD::VEXTRACT_SEXT_ELT", 5873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton SDTypeProfile<1, 3, [SDTCisPtrTy<2>]>, []>; 5973844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef MipsVExtractZExt : SDNode<"MipsISD::VEXTRACT_ZEXT_ELT", 6073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton SDTypeProfile<1, 3, [SDTCisPtrTy<2>]>, []>; 6173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 6273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// Operands 6373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 6473844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef uimm2 : Operand<i32> { 6573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton let PrintMethod = "printUnsignedImm"; 6673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton} 6773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 6873844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef uimm3 : Operand<i32> { 6973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton let PrintMethod = "printUnsignedImm"; 7073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton} 7173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 7273844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef uimm4 : Operand<i32> { 7373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton let PrintMethod = "printUnsignedImm"; 7473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton} 7573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 7673844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef uimm8 : Operand<i32> { 7773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton let PrintMethod = "printUnsignedImm"; 7873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton} 7973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 8073844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef simm5 : Operand<i32>; 8173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 8273844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef simm10 : Operand<i32>; 8373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 8473844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vsplat_uimm1 : Operand<vAny> { 8573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton let PrintMethod = "printUnsignedImm8"; 8673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton} 8773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 8873844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vsplat_uimm2 : Operand<vAny> { 8973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton let PrintMethod = "printUnsignedImm8"; 9073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton} 9173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 9273844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vsplat_uimm3 : Operand<vAny> { 9373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton let PrintMethod = "printUnsignedImm"; 9473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton} 9573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 9673844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vsplat_uimm4 : Operand<vAny> { 9773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton let PrintMethod = "printUnsignedImm"; 98dacdc0156a2b548a19110cd63b800331cd512032Jim Ingham} 99dacdc0156a2b548a19110cd63b800331cd512032Jim Ingham 10046be7f2e4321966f22385fafa82bbb67ebd32232Jim Inghamdef vsplat_uimm5 : Operand<vAny> { 10146be7f2e4321966f22385fafa82bbb67ebd32232Jim Ingham let PrintMethod = "printUnsignedImm"; 102507a638609d962bf330c4ec08ee6c381ffd8695eGreg Clayton} 103090f83176695d86197b0e86b67dee4160ec5003dJim Ingham 104761afb822b18c46b2ad84be03f372e90ac1e6143Jim Inghamdef vsplat_uimm6 : Operand<vAny> { 10573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton let PrintMethod = "printUnsignedImm"; 10673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton} 10773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 10873844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vsplat_uimm8 : Operand<vAny> { 10973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton let PrintMethod = "printUnsignedImm"; 1102e7f313dc473b036788319690116b324cb44b765Greg Clayton} 111b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham 112b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsplat_simm5 : Operand<vAny>; 113090f83176695d86197b0e86b67dee4160ec5003dJim Ingham 114761afb822b18c46b2ad84be03f372e90ac1e6143Jim Inghamdef vsplat_simm10 : Operand<vAny>; 115761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham 11673844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef immZExt2Lsa : ImmLeaf<i32, [{return isUInt<2>(Imm - 1);}]>; 11773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 11873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// Pattern fragments 11973844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vextract_sext_i8 : PatFrag<(ops node:$vec, node:$idx), 12073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton (MipsVExtractSExt node:$vec, node:$idx, i8)>; 12173844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vextract_sext_i16 : PatFrag<(ops node:$vec, node:$idx), 12273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton (MipsVExtractSExt node:$vec, node:$idx, i16)>; 12373844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vextract_sext_i32 : PatFrag<(ops node:$vec, node:$idx), 12473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton (MipsVExtractSExt node:$vec, node:$idx, i32)>; 12573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 126090f83176695d86197b0e86b67dee4160ec5003dJim Inghamdef vextract_zext_i8 : PatFrag<(ops node:$vec, node:$idx), 12773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton (MipsVExtractZExt node:$vec, node:$idx, i8)>; 12873844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vextract_zext_i16 : PatFrag<(ops node:$vec, node:$idx), 12973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton (MipsVExtractZExt node:$vec, node:$idx, i16)>; 13073844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vextract_zext_i32 : PatFrag<(ops node:$vec, node:$idx), 13173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton (MipsVExtractZExt node:$vec, node:$idx, i32)>; 13273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 13373844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vinsert_v16i8 : PatFrag<(ops node:$vec, node:$val, node:$idx), 13473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton (v16i8 (vector_insert node:$vec, node:$val, node:$idx))>; 13573844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vinsert_v8i16 : PatFrag<(ops node:$vec, node:$val, node:$idx), 13673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton (v8i16 (vector_insert node:$vec, node:$val, node:$idx))>; 13773844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vinsert_v4i32 : PatFrag<(ops node:$vec, node:$val, node:$idx), 13873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton (v4i32 (vector_insert node:$vec, node:$val, node:$idx))>; 13973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 14073844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass vfsetcc_type<ValueType ResTy, ValueType OpTy, CondCode CC> : 14173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton PatFrag<(ops node:$lhs, node:$rhs), 14273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton (ResTy (vfsetcc (OpTy node:$lhs), (OpTy node:$rhs), CC))>; 14373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 14473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// ISD::SETFALSE cannot occur 14573844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetoeq_v4f32 : vfsetcc_type<v4i32, v4f32, SETOEQ>; 14673844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetoeq_v2f64 : vfsetcc_type<v2i64, v2f64, SETOEQ>; 14773844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetoge_v4f32 : vfsetcc_type<v4i32, v4f32, SETOGE>; 14873844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetoge_v2f64 : vfsetcc_type<v2i64, v2f64, SETOGE>; 14973844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetogt_v4f32 : vfsetcc_type<v4i32, v4f32, SETOGT>; 15073844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetogt_v2f64 : vfsetcc_type<v2i64, v2f64, SETOGT>; 15173844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetole_v4f32 : vfsetcc_type<v4i32, v4f32, SETOLE>; 15273844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetole_v2f64 : vfsetcc_type<v2i64, v2f64, SETOLE>; 15373844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetolt_v4f32 : vfsetcc_type<v4i32, v4f32, SETOLT>; 15473844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetolt_v2f64 : vfsetcc_type<v2i64, v2f64, SETOLT>; 15573844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetone_v4f32 : vfsetcc_type<v4i32, v4f32, SETONE>; 15673844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetone_v2f64 : vfsetcc_type<v2i64, v2f64, SETONE>; 15773844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetord_v4f32 : vfsetcc_type<v4i32, v4f32, SETO>; 15873844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetord_v2f64 : vfsetcc_type<v2i64, v2f64, SETO>; 15973844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetun_v4f32 : vfsetcc_type<v4i32, v4f32, SETUO>; 16073844aa19a7360b662e2be710fc3c969d6c86606Greg Claytondef vfsetun_v2f64 : vfsetcc_type<v2i64, v2f64, SETUO>; 1612e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetueq_v4f32 : vfsetcc_type<v4i32, v4f32, SETUEQ>; 1622e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetueq_v2f64 : vfsetcc_type<v2i64, v2f64, SETUEQ>; 1632e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetuge_v4f32 : vfsetcc_type<v4i32, v4f32, SETUGE>; 1642e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetuge_v2f64 : vfsetcc_type<v2i64, v2f64, SETUGE>; 1652e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetugt_v4f32 : vfsetcc_type<v4i32, v4f32, SETUGT>; 1662e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetugt_v2f64 : vfsetcc_type<v2i64, v2f64, SETUGT>; 1672e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetule_v4f32 : vfsetcc_type<v4i32, v4f32, SETULE>; 1682e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetule_v2f64 : vfsetcc_type<v2i64, v2f64, SETULE>; 1692e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetult_v4f32 : vfsetcc_type<v4i32, v4f32, SETULT>; 1702e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetult_v2f64 : vfsetcc_type<v2i64, v2f64, SETULT>; 1712e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetune_v4f32 : vfsetcc_type<v4i32, v4f32, SETUNE>; 1722e7f313dc473b036788319690116b324cb44b765Greg Claytondef vfsetune_v2f64 : vfsetcc_type<v2i64, v2f64, SETUNE>; 1732e7f313dc473b036788319690116b324cb44b765Greg Clayton// ISD::SETTRUE cannot occur 1742e7f313dc473b036788319690116b324cb44b765Greg Clayton// ISD::SETFALSE2 cannot occur 175b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham// ISD::SETTRUE2 cannot occur 176b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham 177b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamclass vsetcc_type<ValueType ResTy, CondCode CC> : 178b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham PatFrag<(ops node:$lhs, node:$rhs), 179b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham (ResTy (vsetcc node:$lhs, node:$rhs, CC))>; 180b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham 181b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vseteq_v16i8 : vsetcc_type<v16i8, SETEQ>; 182b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vseteq_v8i16 : vsetcc_type<v8i16, SETEQ>; 183b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vseteq_v4i32 : vsetcc_type<v4i32, SETEQ>; 184b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vseteq_v2i64 : vsetcc_type<v2i64, SETEQ>; 185b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetle_v16i8 : vsetcc_type<v16i8, SETLE>; 186b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetle_v8i16 : vsetcc_type<v8i16, SETLE>; 187b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetle_v4i32 : vsetcc_type<v4i32, SETLE>; 188b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetle_v2i64 : vsetcc_type<v2i64, SETLE>; 189b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetlt_v16i8 : vsetcc_type<v16i8, SETLT>; 190b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetlt_v8i16 : vsetcc_type<v8i16, SETLT>; 191b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetlt_v4i32 : vsetcc_type<v4i32, SETLT>; 192b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetlt_v2i64 : vsetcc_type<v2i64, SETLT>; 193b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetule_v16i8 : vsetcc_type<v16i8, SETULE>; 194b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetule_v8i16 : vsetcc_type<v8i16, SETULE>; 195b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetule_v4i32 : vsetcc_type<v4i32, SETULE>; 196b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetule_v2i64 : vsetcc_type<v2i64, SETULE>; 197b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetult_v16i8 : vsetcc_type<v16i8, SETULT>; 198b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetult_v8i16 : vsetcc_type<v8i16, SETULT>; 199b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetult_v4i32 : vsetcc_type<v4i32, SETULT>; 200b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsetult_v2i64 : vsetcc_type<v2i64, SETULT>; 201b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham 202b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamdef vsplati8 : PatFrag<(ops node:$e0), 203b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham (v16i8 (build_vector node:$e0, node:$e0, 204090f83176695d86197b0e86b67dee4160ec5003dJim Ingham node:$e0, node:$e0, 205090f83176695d86197b0e86b67dee4160ec5003dJim Ingham node:$e0, node:$e0, 206090f83176695d86197b0e86b67dee4160ec5003dJim Ingham node:$e0, node:$e0, 207090f83176695d86197b0e86b67dee4160ec5003dJim Ingham node:$e0, node:$e0, 208090f83176695d86197b0e86b67dee4160ec5003dJim Ingham node:$e0, node:$e0, 209090f83176695d86197b0e86b67dee4160ec5003dJim Ingham node:$e0, node:$e0, 210090f83176695d86197b0e86b67dee4160ec5003dJim Ingham node:$e0, node:$e0))>; 211090f83176695d86197b0e86b67dee4160ec5003dJim Inghamdef vsplati16 : PatFrag<(ops node:$e0), 212090f83176695d86197b0e86b67dee4160ec5003dJim Ingham (v8i16 (build_vector node:$e0, node:$e0, 213090f83176695d86197b0e86b67dee4160ec5003dJim Ingham node:$e0, node:$e0, 214090f83176695d86197b0e86b67dee4160ec5003dJim Ingham node:$e0, node:$e0, 215090f83176695d86197b0e86b67dee4160ec5003dJim Ingham node:$e0, node:$e0))>; 216090f83176695d86197b0e86b67dee4160ec5003dJim Inghamdef vsplati32 : PatFrag<(ops node:$e0), 217090f83176695d86197b0e86b67dee4160ec5003dJim Ingham (v4i32 (build_vector node:$e0, node:$e0, 218761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham node:$e0, node:$e0))>; 219761afb822b18c46b2ad84be03f372e90ac1e6143Jim Inghamdef vsplati64 : PatFrag<(ops node:$e0), 220761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham (v2i64 (build_vector:$v0 node:$e0, node:$e0))>; 221761afb822b18c46b2ad84be03f372e90ac1e6143Jim Inghamdef vsplatf32 : PatFrag<(ops node:$e0), 222761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham (v4f32 (build_vector node:$e0, node:$e0, 223761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham node:$e0, node:$e0))>; 224761afb822b18c46b2ad84be03f372e90ac1e6143Jim Inghamdef vsplatf64 : PatFrag<(ops node:$e0), 225761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham (v2f64 (build_vector node:$e0, node:$e0))>; 226761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham 227761afb822b18c46b2ad84be03f372e90ac1e6143Jim Inghamclass SplatPatLeaf<Operand opclass, dag frag, code pred = [{}], 228761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham SDNodeXForm xform = NOOP_SDNodeXForm> 229761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham : PatLeaf<frag, pred, xform> { 230761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham Operand OpClass = opclass; 231761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham} 23224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 233b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass SplatComplexPattern<Operand opclass, ValueType ty, int numops, string fn, 23424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton list<SDNode> roots = [], 23524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton list<SDNodeProperty> props = []> : 236ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton ComplexPattern<ty, numops, fn, roots, props> { 2375f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Malea Operand OpClass = opclass; 238ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton} 239ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 2405f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleadef vsplati8_uimm3 : SplatComplexPattern<vsplat_uimm3, v16i8, 1, 241ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton "selectVSplatUimm3", 242ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton [build_vector, bitconvert]>; 243ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 244ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytondef vsplati8_uimm4 : SplatComplexPattern<vsplat_uimm4, v16i8, 1, 245ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton "selectVSplatUimm4", 246ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton [build_vector, bitconvert]>; 247ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 248ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytondef vsplati8_uimm5 : SplatComplexPattern<vsplat_uimm5, v16i8, 1, 249b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton "selectVSplatUimm5", 250ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton [build_vector, bitconvert]>; 251ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 252ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytondef vsplati8_uimm8 : SplatComplexPattern<vsplat_uimm8, v16i8, 1, 253ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton "selectVSplatUimm8", 254b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton [build_vector, bitconvert]>; 255ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 256b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef vsplati8_simm5 : SplatComplexPattern<vsplat_simm5, v16i8, 1, 257ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton "selectVSplatSimm5", 258b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton [build_vector, bitconvert]>; 259ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 260ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytondef vsplati16_uimm3 : SplatComplexPattern<vsplat_uimm3, v8i16, 1, 261b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton "selectVSplatUimm3", 262b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton [build_vector, bitconvert]>; 263b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 264b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef vsplati16_uimm4 : SplatComplexPattern<vsplat_uimm4, v8i16, 1, 265b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton "selectVSplatUimm4", 266b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton [build_vector, bitconvert]>; 267b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 268b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef vsplati16_uimm5 : SplatComplexPattern<vsplat_uimm5, v8i16, 1, 269b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton "selectVSplatUimm5", 270b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton [build_vector, bitconvert]>; 271b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 272b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef vsplati16_simm5 : SplatComplexPattern<vsplat_simm5, v8i16, 1, 273b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton "selectVSplatSimm5", 274b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton [build_vector, bitconvert]>; 275ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 276ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytondef vsplati32_uimm2 : SplatComplexPattern<vsplat_uimm2, v4i32, 1, 277ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton "selectVSplatUimm2", 278b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton [build_vector, bitconvert]>; 27924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 280b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef vsplati32_uimm5 : SplatComplexPattern<vsplat_uimm5, v4i32, 1, 281b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton "selectVSplatUimm5", 28224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton [build_vector, bitconvert]>; 283b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 28424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef vsplati32_simm5 : SplatComplexPattern<vsplat_simm5, v4i32, 1, 285b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton "selectVSplatSimm5", 286b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton [build_vector, bitconvert]>; 28724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 288b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef vsplati64_uimm1 : SplatComplexPattern<vsplat_uimm1, v2i64, 1, 28924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton "selectVSplatUimm1", 290b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton [build_vector, bitconvert]>; 291b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 29224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef vsplati64_uimm5 : SplatComplexPattern<vsplat_uimm5, v2i64, 1, 293b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton "selectVSplatUimm5", 29424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton [build_vector, bitconvert]>; 295b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 296b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef vsplati64_uimm6 : SplatComplexPattern<vsplat_uimm6, v2i64, 1, 29724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton "selectVSplatUimm6", 29824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton [build_vector, bitconvert]>; 29924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 30024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef vsplati64_simm5 : SplatComplexPattern<vsplat_simm5, v2i64, 1, 301b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton "selectVSplatSimm5", 30224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton [build_vector, bitconvert]>; 303b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 304b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton// Any build_vector that is a constant splat with a value that is an exact 305b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton// power of 2 306b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef vsplat_uimm_pow2 : ComplexPattern<vAny, 1, "selectVSplatUimmPow2", 307b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton [build_vector, bitconvert]>; 308b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 309ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytondef fms : PatFrag<(ops node:$wd, node:$ws, node:$wt), 310ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton (fsub node:$wd, (fmul node:$ws, node:$wt))>; 311b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 312ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytondef muladd : PatFrag<(ops node:$wd, node:$ws, node:$wt), 313ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton (add node:$wd, (mul node:$ws, node:$wt))>; 314ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 315ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytondef mulsub : PatFrag<(ops node:$wd, node:$ws, node:$wt), 316b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton (sub node:$wd, (mul node:$ws, node:$wt))>; 317ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 318ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytondef mul_fexp2 : PatFrag<(ops node:$ws, node:$wt), 31924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton (fmul node:$ws, (fexp2 node:$wt))>; 32024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 32124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton// Immediates 322b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef immSExt5 : ImmLeaf<i32, [{return isInt<5>(Imm);}]>; 32324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef immSExt10: ImmLeaf<i32, [{return isInt<10>(Imm);}]>; 32424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 32524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton// Instruction encoding. 32624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass ADD_A_B_ENC : MSA_3R_FMT<0b000, 0b00, 0b010000>; 3275f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleaclass ADD_A_H_ENC : MSA_3R_FMT<0b000, 0b01, 0b010000>; 32824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass ADD_A_W_ENC : MSA_3R_FMT<0b000, 0b10, 0b010000>; 32924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass ADD_A_D_ENC : MSA_3R_FMT<0b000, 0b11, 0b010000>; 330ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 331ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDS_A_B_ENC : MSA_3R_FMT<0b001, 0b00, 0b010000>; 332b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ADDS_A_H_ENC : MSA_3R_FMT<0b001, 0b01, 0b010000>; 333ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDS_A_W_ENC : MSA_3R_FMT<0b001, 0b10, 0b010000>; 334ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDS_A_D_ENC : MSA_3R_FMT<0b001, 0b11, 0b010000>; 335ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 336b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ADDS_S_B_ENC : MSA_3R_FMT<0b010, 0b00, 0b010000>; 33724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass ADDS_S_H_ENC : MSA_3R_FMT<0b010, 0b01, 0b010000>; 338b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ADDS_S_W_ENC : MSA_3R_FMT<0b010, 0b10, 0b010000>; 339ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDS_S_D_ENC : MSA_3R_FMT<0b010, 0b11, 0b010000>; 340ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 341ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDS_U_B_ENC : MSA_3R_FMT<0b011, 0b00, 0b010000>; 342b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ADDS_U_H_ENC : MSA_3R_FMT<0b011, 0b01, 0b010000>; 343ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDS_U_W_ENC : MSA_3R_FMT<0b011, 0b10, 0b010000>; 344b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ADDS_U_D_ENC : MSA_3R_FMT<0b011, 0b11, 0b010000>; 345ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 346ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDV_B_ENC : MSA_3R_FMT<0b000, 0b00, 0b001110>; 347ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDV_H_ENC : MSA_3R_FMT<0b000, 0b01, 0b001110>; 348b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ADDV_W_ENC : MSA_3R_FMT<0b000, 0b10, 0b001110>; 349ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDV_D_ENC : MSA_3R_FMT<0b000, 0b11, 0b001110>; 350b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 351ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDVI_B_ENC : MSA_I5_FMT<0b000, 0b00, 0b000110>; 352ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDVI_H_ENC : MSA_I5_FMT<0b000, 0b01, 0b000110>; 353ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ADDVI_W_ENC : MSA_I5_FMT<0b000, 0b10, 0b000110>; 354b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ADDVI_D_ENC : MSA_I5_FMT<0b000, 0b11, 0b000110>; 355ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 356ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass AND_V_ENC : MSA_VEC_FMT<0b00000, 0b011110>; 35724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 358ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ANDI_B_ENC : MSA_I8_FMT<0b00, 0b000000>; 3597e5fa7fc1f8efd24c078e063b2c4b5e13ba5be20Jason Molenda 360b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ASUB_S_B_ENC : MSA_3R_FMT<0b100, 0b00, 0b010001>; 361ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ASUB_S_H_ENC : MSA_3R_FMT<0b100, 0b01, 0b010001>; 362ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ASUB_S_W_ENC : MSA_3R_FMT<0b100, 0b10, 0b010001>; 363ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ASUB_S_D_ENC : MSA_3R_FMT<0b100, 0b11, 0b010001>; 364ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 365b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ASUB_U_B_ENC : MSA_3R_FMT<0b101, 0b00, 0b010001>; 366ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ASUB_U_H_ENC : MSA_3R_FMT<0b101, 0b01, 0b010001>; 367b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ASUB_U_W_ENC : MSA_3R_FMT<0b101, 0b10, 0b010001>; 368ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass ASUB_U_D_ENC : MSA_3R_FMT<0b101, 0b11, 0b010001>; 369ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 370ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass AVE_S_B_ENC : MSA_3R_FMT<0b100, 0b00, 0b010000>; 371ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass AVE_S_H_ENC : MSA_3R_FMT<0b100, 0b01, 0b010000>; 372ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass AVE_S_W_ENC : MSA_3R_FMT<0b100, 0b10, 0b010000>; 373ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass AVE_S_D_ENC : MSA_3R_FMT<0b100, 0b11, 0b010000>; 374b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 375ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass AVE_U_B_ENC : MSA_3R_FMT<0b101, 0b00, 0b010000>; 376ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass AVE_U_H_ENC : MSA_3R_FMT<0b101, 0b01, 0b010000>; 377ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass AVE_U_W_ENC : MSA_3R_FMT<0b101, 0b10, 0b010000>; 37824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass AVE_U_D_ENC : MSA_3R_FMT<0b101, 0b11, 0b010000>; 379ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Clayton 380ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass AVER_S_B_ENC : MSA_3R_FMT<0b110, 0b00, 0b010000>; 381ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass AVER_S_H_ENC : MSA_3R_FMT<0b110, 0b01, 0b010000>; 38224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass AVER_S_W_ENC : MSA_3R_FMT<0b110, 0b10, 0b010000>; 383ff39f746ebaa3710c44ba49bd9b0a6cf05f60a3fGreg Claytonclass AVER_S_D_ENC : MSA_3R_FMT<0b110, 0b11, 0b010000>; 38424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 38524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass AVER_U_B_ENC : MSA_3R_FMT<0b111, 0b00, 0b010000>; 38624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass AVER_U_H_ENC : MSA_3R_FMT<0b111, 0b01, 0b010000>; 387b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass AVER_U_W_ENC : MSA_3R_FMT<0b111, 0b10, 0b010000>; 388b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass AVER_U_D_ENC : MSA_3R_FMT<0b111, 0b11, 0b010000>; 3890c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 39036bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BCLR_B_ENC : MSA_3R_FMT<0b011, 0b00, 0b001101>; 39136bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BCLR_H_ENC : MSA_3R_FMT<0b011, 0b01, 0b001101>; 39236bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BCLR_W_ENC : MSA_3R_FMT<0b011, 0b10, 0b001101>; 39336bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BCLR_D_ENC : MSA_3R_FMT<0b011, 0b11, 0b001101>; 39436bc5ea5a48c19421d44f559e2165c105657b809Greg Clayton 39536bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BCLRI_B_ENC : MSA_BIT_B_FMT<0b011, 0b001001>; 39636bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BCLRI_H_ENC : MSA_BIT_H_FMT<0b011, 0b001001>; 39736bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BCLRI_W_ENC : MSA_BIT_W_FMT<0b011, 0b001001>; 39836bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BCLRI_D_ENC : MSA_BIT_D_FMT<0b011, 0b001001>; 39936bc5ea5a48c19421d44f559e2165c105657b809Greg Clayton 40036bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BINSL_B_ENC : MSA_3R_FMT<0b110, 0b00, 0b001101>; 40136bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BINSL_H_ENC : MSA_3R_FMT<0b110, 0b01, 0b001101>; 40236bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BINSL_W_ENC : MSA_3R_FMT<0b110, 0b10, 0b001101>; 40336bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BINSL_D_ENC : MSA_3R_FMT<0b110, 0b11, 0b001101>; 40436bc5ea5a48c19421d44f559e2165c105657b809Greg Clayton 40536bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BINSLI_B_ENC : MSA_BIT_B_FMT<0b110, 0b001001>; 40636bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BINSLI_H_ENC : MSA_BIT_H_FMT<0b110, 0b001001>; 40736bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BINSLI_W_ENC : MSA_BIT_W_FMT<0b110, 0b001001>; 4080c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass BINSLI_D_ENC : MSA_BIT_D_FMT<0b110, 0b001001>; 409b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 410b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass BINSR_B_ENC : MSA_3R_FMT<0b111, 0b00, 0b001101>; 411b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass BINSR_H_ENC : MSA_3R_FMT<0b111, 0b01, 0b001101>; 412b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass BINSR_W_ENC : MSA_3R_FMT<0b111, 0b10, 0b001101>; 413b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass BINSR_D_ENC : MSA_3R_FMT<0b111, 0b11, 0b001101>; 414b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 415b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass BINSRI_B_ENC : MSA_BIT_B_FMT<0b111, 0b001001>; 41636bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass BINSRI_H_ENC : MSA_BIT_H_FMT<0b111, 0b001001>; 417b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass BINSRI_W_ENC : MSA_BIT_W_FMT<0b111, 0b001001>; 418b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass BINSRI_D_ENC : MSA_BIT_D_FMT<0b111, 0b001001>; 419b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 420b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass BMNZ_V_ENC : MSA_VEC_FMT<0b00100, 0b011110>; 421b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 422b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass BMNZI_B_ENC : MSA_I8_FMT<0b00, 0b000001>; 423b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 424b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass BMZ_V_ENC : MSA_VEC_FMT<0b00101, 0b011110>; 425b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 426b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass BMZI_B_ENC : MSA_I8_FMT<0b01, 0b000001>; 427b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 428abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BNEG_B_ENC : MSA_3R_FMT<0b101, 0b00, 0b001101>; 429464c6161464694412b7472129e789248f1cf21b9Greg Claytonclass BNEG_H_ENC : MSA_3R_FMT<0b101, 0b01, 0b001101>; 430abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BNEG_W_ENC : MSA_3R_FMT<0b101, 0b10, 0b001101>; 431abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BNEG_D_ENC : MSA_3R_FMT<0b101, 0b11, 0b001101>; 432abb3302051246273eb92cca203c9a1b9d9736e05Greg Clayton 433abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BNEGI_B_ENC : MSA_BIT_B_FMT<0b101, 0b001001>; 434abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BNEGI_H_ENC : MSA_BIT_H_FMT<0b101, 0b001001>; 435abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BNEGI_W_ENC : MSA_BIT_W_FMT<0b101, 0b001001>; 436abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BNEGI_D_ENC : MSA_BIT_D_FMT<0b101, 0b001001>; 43795ec1688db0efe51509ad9356052f5004d8856e0Greg Clayton 43895ec1688db0efe51509ad9356052f5004d8856e0Greg Claytonclass BNZ_B_ENC : MSA_CBRANCH_FMT<0b111, 0b00>; 43995ec1688db0efe51509ad9356052f5004d8856e0Greg Claytonclass BNZ_H_ENC : MSA_CBRANCH_FMT<0b111, 0b01>; 440abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BNZ_W_ENC : MSA_CBRANCH_FMT<0b111, 0b10>; 441abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BNZ_D_ENC : MSA_CBRANCH_FMT<0b111, 0b11>; 442abb3302051246273eb92cca203c9a1b9d9736e05Greg Clayton 443abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BNZ_V_ENC : MSA_CBRANCH_V_FMT<0b01000>; 444abb3302051246273eb92cca203c9a1b9d9736e05Greg Clayton 445abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BSEL_V_ENC : MSA_VEC_FMT<0b00110, 0b011110>; 446abb3302051246273eb92cca203c9a1b9d9736e05Greg Clayton 44773844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass BSELI_B_ENC : MSA_I8_FMT<0b10, 0b000001>; 44873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 44973844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass BSET_B_ENC : MSA_3R_FMT<0b100, 0b00, 0b001101>; 450abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BSET_H_ENC : MSA_3R_FMT<0b100, 0b01, 0b001101>; 451abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass BSET_W_ENC : MSA_3R_FMT<0b100, 0b10, 0b001101>; 45295ec1688db0efe51509ad9356052f5004d8856e0Greg Claytonclass BSET_D_ENC : MSA_3R_FMT<0b100, 0b11, 0b001101>; 45395ec1688db0efe51509ad9356052f5004d8856e0Greg Clayton 45495ec1688db0efe51509ad9356052f5004d8856e0Greg Claytonclass BSETI_B_ENC : MSA_BIT_B_FMT<0b100, 0b001001>; 455464c6161464694412b7472129e789248f1cf21b9Greg Claytonclass BSETI_H_ENC : MSA_BIT_H_FMT<0b100, 0b001001>; 456464c6161464694412b7472129e789248f1cf21b9Greg Claytonclass BSETI_W_ENC : MSA_BIT_W_FMT<0b100, 0b001001>; 45773844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass BSETI_D_ENC : MSA_BIT_D_FMT<0b100, 0b001001>; 45873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 45973844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass BZ_B_ENC : MSA_CBRANCH_FMT<0b110, 0b00>; 46073844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass BZ_H_ENC : MSA_CBRANCH_FMT<0b110, 0b01>; 46173844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass BZ_W_ENC : MSA_CBRANCH_FMT<0b110, 0b10>; 46273844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass BZ_D_ENC : MSA_CBRANCH_FMT<0b110, 0b11>; 46373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 46473844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass BZ_V_ENC : MSA_CBRANCH_V_FMT<0b01011>; 46573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 46673844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass CEQ_B_ENC : MSA_3R_FMT<0b000, 0b00, 0b001111>; 46773844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass CEQ_H_ENC : MSA_3R_FMT<0b000, 0b01, 0b001111>; 46873844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass CEQ_W_ENC : MSA_3R_FMT<0b000, 0b10, 0b001111>; 46973844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass CEQ_D_ENC : MSA_3R_FMT<0b000, 0b11, 0b001111>; 470464c6161464694412b7472129e789248f1cf21b9Greg Clayton 471464c6161464694412b7472129e789248f1cf21b9Greg Claytonclass CEQI_B_ENC : MSA_I5_FMT<0b000, 0b00, 0b000111>; 472abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass CEQI_H_ENC : MSA_I5_FMT<0b000, 0b01, 0b000111>; 47373844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass CEQI_W_ENC : MSA_I5_FMT<0b000, 0b10, 0b000111>; 47473844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass CEQI_D_ENC : MSA_I5_FMT<0b000, 0b11, 0b000111>; 47573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 47673844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass CFCMSA_ENC : MSA_ELM_CFCMSA_FMT<0b0001111110, 0b011001>; 477abb3302051246273eb92cca203c9a1b9d9736e05Greg Clayton 478abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass CLE_S_B_ENC : MSA_3R_FMT<0b100, 0b00, 0b001111>; 479abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass CLE_S_H_ENC : MSA_3R_FMT<0b100, 0b01, 0b001111>; 480abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass CLE_S_W_ENC : MSA_3R_FMT<0b100, 0b10, 0b001111>; 481abb3302051246273eb92cca203c9a1b9d9736e05Greg Claytonclass CLE_S_D_ENC : MSA_3R_FMT<0b100, 0b11, 0b001111>; 482abb3302051246273eb92cca203c9a1b9d9736e05Greg Clayton 483527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLE_U_B_ENC : MSA_3R_FMT<0b101, 0b00, 0b001111>; 484527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLE_U_H_ENC : MSA_3R_FMT<0b101, 0b01, 0b001111>; 48597471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass CLE_U_W_ENC : MSA_3R_FMT<0b101, 0b10, 0b001111>; 48697471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass CLE_U_D_ENC : MSA_3R_FMT<0b101, 0b11, 0b001111>; 48797471184b8823c949bc68bbf54ea3edf3845a750Greg Clayton 48897471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass CLEI_S_B_ENC : MSA_I5_FMT<0b100, 0b00, 0b000111>; 489527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLEI_S_H_ENC : MSA_I5_FMT<0b100, 0b01, 0b000111>; 490527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLEI_S_W_ENC : MSA_I5_FMT<0b100, 0b10, 0b000111>; 491527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLEI_S_D_ENC : MSA_I5_FMT<0b100, 0b11, 0b000111>; 492527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 493527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLEI_U_B_ENC : MSA_I5_FMT<0b101, 0b00, 0b000111>; 494527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLEI_U_H_ENC : MSA_I5_FMT<0b101, 0b01, 0b000111>; 495527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLEI_U_W_ENC : MSA_I5_FMT<0b101, 0b10, 0b000111>; 496527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLEI_U_D_ENC : MSA_I5_FMT<0b101, 0b11, 0b000111>; 497527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 498527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLT_S_B_ENC : MSA_3R_FMT<0b010, 0b00, 0b001111>; 499527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLT_S_H_ENC : MSA_3R_FMT<0b010, 0b01, 0b001111>; 500527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLT_S_W_ENC : MSA_3R_FMT<0b010, 0b10, 0b001111>; 501527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLT_S_D_ENC : MSA_3R_FMT<0b010, 0b11, 0b001111>; 502527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 503527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLT_U_B_ENC : MSA_3R_FMT<0b011, 0b00, 0b001111>; 504527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLT_U_H_ENC : MSA_3R_FMT<0b011, 0b01, 0b001111>; 505527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLT_U_W_ENC : MSA_3R_FMT<0b011, 0b10, 0b001111>; 506527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLT_U_D_ENC : MSA_3R_FMT<0b011, 0b11, 0b001111>; 507527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 508527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLTI_S_B_ENC : MSA_I5_FMT<0b010, 0b00, 0b000111>; 509527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLTI_S_H_ENC : MSA_I5_FMT<0b010, 0b01, 0b000111>; 510527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLTI_S_W_ENC : MSA_I5_FMT<0b010, 0b10, 0b000111>; 511527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLTI_S_D_ENC : MSA_I5_FMT<0b010, 0b11, 0b000111>; 512527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 513527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLTI_U_B_ENC : MSA_I5_FMT<0b011, 0b00, 0b000111>; 514527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLTI_U_H_ENC : MSA_I5_FMT<0b011, 0b01, 0b000111>; 515527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass CLTI_U_W_ENC : MSA_I5_FMT<0b011, 0b10, 0b000111>; 5160c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass CLTI_U_D_ENC : MSA_I5_FMT<0b011, 0b11, 0b000111>; 5170c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5180c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass COPY_S_B_ENC : MSA_ELM_COPY_B_FMT<0b0010, 0b011001>; 519527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass COPY_S_H_ENC : MSA_ELM_COPY_H_FMT<0b0010, 0b011001>; 520527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass COPY_S_W_ENC : MSA_ELM_COPY_W_FMT<0b0010, 0b011001>; 521527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 522527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass COPY_U_B_ENC : MSA_ELM_COPY_B_FMT<0b0011, 0b011001>; 52397471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass COPY_U_H_ENC : MSA_ELM_COPY_H_FMT<0b0011, 0b011001>; 52497471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass COPY_U_W_ENC : MSA_ELM_COPY_W_FMT<0b0011, 0b011001>; 525527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 5260c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass CTCMSA_ENC : MSA_ELM_CTCMSA_FMT<0b0000111110, 0b011001>; 5270c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5280c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DIV_S_B_ENC : MSA_3R_FMT<0b100, 0b00, 0b010010>; 5290c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DIV_S_H_ENC : MSA_3R_FMT<0b100, 0b01, 0b010010>; 5300c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DIV_S_W_ENC : MSA_3R_FMT<0b100, 0b10, 0b010010>; 5310c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DIV_S_D_ENC : MSA_3R_FMT<0b100, 0b11, 0b010010>; 5320c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5330c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DIV_U_B_ENC : MSA_3R_FMT<0b101, 0b00, 0b010010>; 53468bd76ffe3cfc53b363d4dd1e8a6b58e07d30fceGreg Claytonclass DIV_U_H_ENC : MSA_3R_FMT<0b101, 0b01, 0b010010>; 53568bd76ffe3cfc53b363d4dd1e8a6b58e07d30fceGreg Claytonclass DIV_U_W_ENC : MSA_3R_FMT<0b101, 0b10, 0b010010>; 5360c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DIV_U_D_ENC : MSA_3R_FMT<0b101, 0b11, 0b010010>; 5370c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5380c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DOTP_S_H_ENC : MSA_3R_FMT<0b000, 0b01, 0b010011>; 5390c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DOTP_S_W_ENC : MSA_3R_FMT<0b000, 0b10, 0b010011>; 5400c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DOTP_S_D_ENC : MSA_3R_FMT<0b000, 0b11, 0b010011>; 5410c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5420c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DOTP_U_H_ENC : MSA_3R_FMT<0b001, 0b01, 0b010011>; 5430c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DOTP_U_W_ENC : MSA_3R_FMT<0b001, 0b10, 0b010011>; 5440c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DOTP_U_D_ENC : MSA_3R_FMT<0b001, 0b11, 0b010011>; 5450c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5460c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DPADD_S_H_ENC : MSA_3R_FMT<0b010, 0b01, 0b010011>; 5470c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DPADD_S_W_ENC : MSA_3R_FMT<0b010, 0b10, 0b010011>; 5480c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DPADD_S_D_ENC : MSA_3R_FMT<0b010, 0b11, 0b010011>; 5490c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5500c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DPADD_U_H_ENC : MSA_3R_FMT<0b011, 0b01, 0b010011>; 5510c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DPADD_U_W_ENC : MSA_3R_FMT<0b011, 0b10, 0b010011>; 5520c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DPADD_U_D_ENC : MSA_3R_FMT<0b011, 0b11, 0b010011>; 5530c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5540c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DPSUB_S_H_ENC : MSA_3R_FMT<0b100, 0b01, 0b010011>; 5550c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DPSUB_S_W_ENC : MSA_3R_FMT<0b100, 0b10, 0b010011>; 55668bd76ffe3cfc53b363d4dd1e8a6b58e07d30fceGreg Claytonclass DPSUB_S_D_ENC : MSA_3R_FMT<0b100, 0b11, 0b010011>; 5570c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5580c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DPSUB_U_H_ENC : MSA_3R_FMT<0b101, 0b01, 0b010011>; 5590c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass DPSUB_U_W_ENC : MSA_3R_FMT<0b101, 0b10, 0b010011>; 56097471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass DPSUB_U_D_ENC : MSA_3R_FMT<0b101, 0b11, 0b010011>; 5610c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5620c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass FADD_W_ENC : MSA_3RF_FMT<0b0000, 0b0, 0b011011>; 56397471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FADD_D_ENC : MSA_3RF_FMT<0b0000, 0b1, 0b011011>; 56497471184b8823c949bc68bbf54ea3edf3845a750Greg Clayton 56597471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCAF_W_ENC : MSA_3RF_FMT<0b0000, 0b0, 0b011010>; 5660c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass FCAF_D_ENC : MSA_3RF_FMT<0b0000, 0b1, 0b011010>; 56797471184b8823c949bc68bbf54ea3edf3845a750Greg Clayton 56897471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCEQ_W_ENC : MSA_3RF_FMT<0b0010, 0b0, 0b011010>; 56997471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCEQ_D_ENC : MSA_3RF_FMT<0b0010, 0b1, 0b011010>; 57097471184b8823c949bc68bbf54ea3edf3845a750Greg Clayton 57197471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCLASS_W_ENC : MSA_2RF_FMT<0b110010000, 0b0, 0b011110>; 57297471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCLASS_D_ENC : MSA_2RF_FMT<0b110010000, 0b1, 0b011110>; 57397471184b8823c949bc68bbf54ea3edf3845a750Greg Clayton 5740c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass FCLE_W_ENC : MSA_3RF_FMT<0b0110, 0b0, 0b011010>; 57597471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCLE_D_ENC : MSA_3RF_FMT<0b0110, 0b1, 0b011010>; 57697471184b8823c949bc68bbf54ea3edf3845a750Greg Clayton 57797471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCLT_W_ENC : MSA_3RF_FMT<0b0100, 0b0, 0b011010>; 57897471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCLT_D_ENC : MSA_3RF_FMT<0b0100, 0b1, 0b011010>; 579527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 5800c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass FCNE_W_ENC : MSA_3RF_FMT<0b0011, 0b0, 0b011100>; 5810c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass FCNE_D_ENC : MSA_3RF_FMT<0b0011, 0b1, 0b011100>; 582527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 5830c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass FCOR_W_ENC : MSA_3RF_FMT<0b0001, 0b0, 0b011100>; 5840c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass FCOR_D_ENC : MSA_3RF_FMT<0b0001, 0b1, 0b011100>; 5850c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 58697471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCUEQ_W_ENC : MSA_3RF_FMT<0b0011, 0b0, 0b011010>; 5870c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass FCUEQ_D_ENC : MSA_3RF_FMT<0b0011, 0b1, 0b011010>; 588527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 58997471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCULE_W_ENC : MSA_3RF_FMT<0b0111, 0b0, 0b011010>; 59097471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCULE_D_ENC : MSA_3RF_FMT<0b0111, 0b1, 0b011010>; 5910c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5920c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass FCULT_W_ENC : MSA_3RF_FMT<0b0101, 0b0, 0b011010>; 5930c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass FCULT_D_ENC : MSA_3RF_FMT<0b0101, 0b1, 0b011010>; 5940c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 5950c8446cc220c429fb51f8f9864275c8b1c768533Greg Claytonclass FCUN_W_ENC : MSA_3RF_FMT<0b0001, 0b0, 0b011010>; 59697471184b8823c949bc68bbf54ea3edf3845a750Greg Claytonclass FCUN_D_ENC : MSA_3RF_FMT<0b0001, 0b1, 0b011010>; 5970c8446cc220c429fb51f8f9864275c8b1c768533Greg Clayton 598527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FCUNE_W_ENC : MSA_3RF_FMT<0b0010, 0b0, 0b011100>; 599527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FCUNE_D_ENC : MSA_3RF_FMT<0b0010, 0b1, 0b011100>; 600527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 601527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FDIV_W_ENC : MSA_3RF_FMT<0b0011, 0b0, 0b011011>; 602527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FDIV_D_ENC : MSA_3RF_FMT<0b0011, 0b1, 0b011011>; 603527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 604527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FEXDO_H_ENC : MSA_3RF_FMT<0b1000, 0b0, 0b011011>; 605527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FEXDO_W_ENC : MSA_3RF_FMT<0b1000, 0b1, 0b011011>; 606527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 607527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FEXP2_W_ENC : MSA_3RF_FMT<0b0111, 0b0, 0b011011>; 608527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FEXP2_D_ENC : MSA_3RF_FMT<0b0111, 0b1, 0b011011>; 609527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 610527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FEXUPL_W_ENC : MSA_2RF_FMT<0b110011000, 0b0, 0b011110>; 611527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FEXUPL_D_ENC : MSA_2RF_FMT<0b110011000, 0b1, 0b011110>; 612527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 613527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FEXUPR_W_ENC : MSA_2RF_FMT<0b110011001, 0b0, 0b011110>; 614527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FEXUPR_D_ENC : MSA_2RF_FMT<0b110011001, 0b1, 0b011110>; 615b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 616b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FFINT_S_W_ENC : MSA_2RF_FMT<0b110011110, 0b0, 0b011110>; 617b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FFINT_S_D_ENC : MSA_2RF_FMT<0b110011110, 0b1, 0b011110>; 618b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 619b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FFINT_U_W_ENC : MSA_2RF_FMT<0b110011111, 0b0, 0b011110>; 620b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FFINT_U_D_ENC : MSA_2RF_FMT<0b110011111, 0b1, 0b011110>; 621b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 622b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FFQL_W_ENC : MSA_2RF_FMT<0b110011010, 0b0, 0b011110>; 623527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FFQL_D_ENC : MSA_2RF_FMT<0b110011010, 0b1, 0b011110>; 624b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 625527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass FFQR_W_ENC : MSA_2RF_FMT<0b110011011, 0b0, 0b011110>; 626b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FFQR_D_ENC : MSA_2RF_FMT<0b110011011, 0b1, 0b011110>; 627527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 628b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FILL_B_ENC : MSA_2R_FILL_FMT<0b11000000, 0b00, 0b011110>; 629b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FILL_H_ENC : MSA_2R_FILL_FMT<0b11000000, 0b01, 0b011110>; 630b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FILL_W_ENC : MSA_2R_FILL_FMT<0b11000000, 0b10, 0b011110>; 631b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 632b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FLOG2_W_ENC : MSA_2RF_FMT<0b110010111, 0b0, 0b011110>; 633b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FLOG2_D_ENC : MSA_2RF_FMT<0b110010111, 0b1, 0b011110>; 634b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 635b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMADD_W_ENC : MSA_3RF_FMT<0b0100, 0b0, 0b011011>; 636b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMADD_D_ENC : MSA_3RF_FMT<0b0100, 0b1, 0b011011>; 637b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 63824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass FMAX_W_ENC : MSA_3RF_FMT<0b1110, 0b0, 0b011011>; 639b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMAX_D_ENC : MSA_3RF_FMT<0b1110, 0b1, 0b011011>; 640b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 641b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMAX_A_W_ENC : MSA_3RF_FMT<0b1111, 0b0, 0b011011>; 642b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMAX_A_D_ENC : MSA_3RF_FMT<0b1111, 0b1, 0b011011>; 643b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 644b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMIN_W_ENC : MSA_3RF_FMT<0b1100, 0b0, 0b011011>; 645b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMIN_D_ENC : MSA_3RF_FMT<0b1100, 0b1, 0b011011>; 646b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 647b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMIN_A_W_ENC : MSA_3RF_FMT<0b1101, 0b0, 0b011011>; 648b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMIN_A_D_ENC : MSA_3RF_FMT<0b1101, 0b1, 0b011011>; 649b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 650b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMSUB_W_ENC : MSA_3RF_FMT<0b0101, 0b0, 0b011011>; 651b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMSUB_D_ENC : MSA_3RF_FMT<0b0101, 0b1, 0b011011>; 652b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 653b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMUL_W_ENC : MSA_3RF_FMT<0b0010, 0b0, 0b011011>; 654b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FMUL_D_ENC : MSA_3RF_FMT<0b0010, 0b1, 0b011011>; 655b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 656b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FRINT_W_ENC : MSA_2RF_FMT<0b110010110, 0b0, 0b011110>; 657b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FRINT_D_ENC : MSA_2RF_FMT<0b110010110, 0b1, 0b011110>; 658b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 659b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FRCP_W_ENC : MSA_2RF_FMT<0b110010101, 0b0, 0b011110>; 660b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FRCP_D_ENC : MSA_2RF_FMT<0b110010101, 0b1, 0b011110>; 661b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 662b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FRSQRT_W_ENC : MSA_2RF_FMT<0b110010100, 0b0, 0b011110>; 663b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FRSQRT_D_ENC : MSA_2RF_FMT<0b110010100, 0b1, 0b011110>; 664b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 665b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSAF_W_ENC : MSA_3RF_FMT<0b1000, 0b0, 0b011010>; 666b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSAF_D_ENC : MSA_3RF_FMT<0b1000, 0b1, 0b011010>; 667b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 668b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSEQ_W_ENC : MSA_3RF_FMT<0b1010, 0b0, 0b011010>; 669b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSEQ_D_ENC : MSA_3RF_FMT<0b1010, 0b1, 0b011010>; 670b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 671b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSLE_W_ENC : MSA_3RF_FMT<0b1110, 0b0, 0b011010>; 672b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSLE_D_ENC : MSA_3RF_FMT<0b1110, 0b1, 0b011010>; 673b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 674b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSLT_W_ENC : MSA_3RF_FMT<0b1100, 0b0, 0b011010>; 675b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSLT_D_ENC : MSA_3RF_FMT<0b1100, 0b1, 0b011010>; 676b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 677b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSNE_W_ENC : MSA_3RF_FMT<0b1011, 0b0, 0b011100>; 678b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSNE_D_ENC : MSA_3RF_FMT<0b1011, 0b1, 0b011100>; 679b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 680b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSOR_W_ENC : MSA_3RF_FMT<0b1001, 0b0, 0b011100>; 681b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSOR_D_ENC : MSA_3RF_FMT<0b1001, 0b1, 0b011100>; 682b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 683b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSQRT_W_ENC : MSA_2RF_FMT<0b110010011, 0b0, 0b011110>; 684b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSQRT_D_ENC : MSA_2RF_FMT<0b110010011, 0b1, 0b011110>; 685b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 686b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSUB_W_ENC : MSA_3RF_FMT<0b0001, 0b0, 0b011011>; 687b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSUB_D_ENC : MSA_3RF_FMT<0b0001, 0b1, 0b011011>; 688b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 689b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSUEQ_W_ENC : MSA_3RF_FMT<0b1011, 0b0, 0b011010>; 690b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSUEQ_D_ENC : MSA_3RF_FMT<0b1011, 0b1, 0b011010>; 691b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 692b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSULE_W_ENC : MSA_3RF_FMT<0b1111, 0b0, 0b011010>; 693b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSULE_D_ENC : MSA_3RF_FMT<0b1111, 0b1, 0b011010>; 694b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 695b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSULT_W_ENC : MSA_3RF_FMT<0b1101, 0b0, 0b011010>; 696b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSULT_D_ENC : MSA_3RF_FMT<0b1101, 0b1, 0b011010>; 697b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 698b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSUN_W_ENC : MSA_3RF_FMT<0b1001, 0b0, 0b011010>; 699b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSUN_D_ENC : MSA_3RF_FMT<0b1001, 0b1, 0b011010>; 700b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 701b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSUNE_W_ENC : MSA_3RF_FMT<0b1010, 0b0, 0b011100>; 702b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FSUNE_D_ENC : MSA_3RF_FMT<0b1010, 0b1, 0b011100>; 703b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 704b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FTINT_S_W_ENC : MSA_2RF_FMT<0b110011100, 0b0, 0b011110>; 705b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FTINT_S_D_ENC : MSA_2RF_FMT<0b110011100, 0b1, 0b011110>; 706b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 707b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FTINT_U_W_ENC : MSA_2RF_FMT<0b110011101, 0b0, 0b011110>; 708b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FTINT_U_D_ENC : MSA_2RF_FMT<0b110011101, 0b1, 0b011110>; 709b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 710b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FTQ_H_ENC : MSA_3RF_FMT<0b1010, 0b0, 0b011011>; 711b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FTQ_W_ENC : MSA_3RF_FMT<0b1010, 0b1, 0b011011>; 712b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 713b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FTRUNC_S_W_ENC : MSA_2RF_FMT<0b110010001, 0b0, 0b011110>; 714b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FTRUNC_S_D_ENC : MSA_2RF_FMT<0b110010001, 0b1, 0b011110>; 715527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 716b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FTRUNC_U_W_ENC : MSA_2RF_FMT<0b110010010, 0b0, 0b011110>; 717b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass FTRUNC_U_D_ENC : MSA_2RF_FMT<0b110010010, 0b1, 0b011110>; 718527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 719527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass HADD_S_H_ENC : MSA_3R_FMT<0b100, 0b01, 0b010101>; 720527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass HADD_S_W_ENC : MSA_3R_FMT<0b100, 0b10, 0b010101>; 721b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass HADD_S_D_ENC : MSA_3R_FMT<0b100, 0b11, 0b010101>; 722b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 723b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass HADD_U_H_ENC : MSA_3R_FMT<0b101, 0b01, 0b010101>; 724b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass HADD_U_W_ENC : MSA_3R_FMT<0b101, 0b10, 0b010101>; 725b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass HADD_U_D_ENC : MSA_3R_FMT<0b101, 0b11, 0b010101>; 726b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 727b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass HSUB_S_H_ENC : MSA_3R_FMT<0b110, 0b01, 0b010101>; 728b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass HSUB_S_W_ENC : MSA_3R_FMT<0b110, 0b10, 0b010101>; 729b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass HSUB_S_D_ENC : MSA_3R_FMT<0b110, 0b11, 0b010101>; 730b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 731b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass HSUB_U_H_ENC : MSA_3R_FMT<0b111, 0b01, 0b010101>; 732b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass HSUB_U_W_ENC : MSA_3R_FMT<0b111, 0b10, 0b010101>; 733b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass HSUB_U_D_ENC : MSA_3R_FMT<0b111, 0b11, 0b010101>; 734b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 735b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVEV_B_ENC : MSA_3R_FMT<0b110, 0b00, 0b010100>; 736b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVEV_H_ENC : MSA_3R_FMT<0b110, 0b01, 0b010100>; 737b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVEV_W_ENC : MSA_3R_FMT<0b110, 0b10, 0b010100>; 738143fcc3a15425659b381502ed4e1e50a3e726f36Greg Claytonclass ILVEV_D_ENC : MSA_3R_FMT<0b110, 0b11, 0b010100>; 739b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 740b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVL_B_ENC : MSA_3R_FMT<0b100, 0b00, 0b010100>; 7416475c42148a8ea1ca86e5db465db7eca742d897dGreg Claytonclass ILVL_H_ENC : MSA_3R_FMT<0b100, 0b01, 0b010100>; 742b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVL_W_ENC : MSA_3R_FMT<0b100, 0b10, 0b010100>; 743b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVL_D_ENC : MSA_3R_FMT<0b100, 0b11, 0b010100>; 744b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 745b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVOD_B_ENC : MSA_3R_FMT<0b111, 0b00, 0b010100>; 746b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVOD_H_ENC : MSA_3R_FMT<0b111, 0b01, 0b010100>; 747b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVOD_W_ENC : MSA_3R_FMT<0b111, 0b10, 0b010100>; 748b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVOD_D_ENC : MSA_3R_FMT<0b111, 0b11, 0b010100>; 74995ec1688db0efe51509ad9356052f5004d8856e0Greg Clayton 750b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVR_B_ENC : MSA_3R_FMT<0b101, 0b00, 0b010100>; 751b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVR_H_ENC : MSA_3R_FMT<0b101, 0b01, 0b010100>; 75295ec1688db0efe51509ad9356052f5004d8856e0Greg Claytonclass ILVR_W_ENC : MSA_3R_FMT<0b101, 0b10, 0b010100>; 753b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass ILVR_D_ENC : MSA_3R_FMT<0b101, 0b11, 0b010100>; 754b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 755b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass INSERT_B_ENC : MSA_ELM_INSERT_B_FMT<0b0100, 0b011001>; 756b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass INSERT_H_ENC : MSA_ELM_INSERT_H_FMT<0b0100, 0b011001>; 75795ec1688db0efe51509ad9356052f5004d8856e0Greg Claytonclass INSERT_W_ENC : MSA_ELM_INSERT_W_FMT<0b0100, 0b011001>; 758b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 759b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass INSVE_B_ENC : MSA_ELM_B_FMT<0b0101, 0b011001>; 76095ec1688db0efe51509ad9356052f5004d8856e0Greg Claytonclass INSVE_H_ENC : MSA_ELM_H_FMT<0b0101, 0b011001>; 761b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass INSVE_W_ENC : MSA_ELM_W_FMT<0b0101, 0b011001>; 762b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass INSVE_D_ENC : MSA_ELM_D_FMT<0b0101, 0b011001>; 763b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 76495ec1688db0efe51509ad9356052f5004d8856e0Greg Claytonclass LD_B_ENC : MSA_MI10_FMT<0b00, 0b1000>; 76595ec1688db0efe51509ad9356052f5004d8856e0Greg Claytonclass LD_H_ENC : MSA_MI10_FMT<0b01, 0b1000>; 766b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass LD_W_ENC : MSA_MI10_FMT<0b10, 0b1000>; 767b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass LD_D_ENC : MSA_MI10_FMT<0b11, 0b1000>; 76895ec1688db0efe51509ad9356052f5004d8856e0Greg Clayton 769b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass LDI_B_ENC : MSA_I10_FMT<0b010, 0b00, 0b001100>; 770b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass LDI_H_ENC : MSA_I10_FMT<0b010, 0b01, 0b001100>; 771b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass LDI_W_ENC : MSA_I10_FMT<0b010, 0b10, 0b001100>; 772b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass LDI_D_ENC : MSA_I10_FMT<0b010, 0b11, 0b001100>; 77395ec1688db0efe51509ad9356052f5004d8856e0Greg Clayton 774b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass LSA_ENC : SPECIAL_LSA_FMT; 775b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 776b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MADD_Q_H_ENC : MSA_3RF_FMT<0b0101, 0b0, 0b011100>; 777b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MADD_Q_W_ENC : MSA_3RF_FMT<0b0101, 0b1, 0b011100>; 778b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 779b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MADDR_Q_H_ENC : MSA_3RF_FMT<0b1101, 0b0, 0b011100>; 780b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MADDR_Q_W_ENC : MSA_3RF_FMT<0b1101, 0b1, 0b011100>; 78195ec1688db0efe51509ad9356052f5004d8856e0Greg Clayton 782b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MADDV_B_ENC : MSA_3R_FMT<0b001, 0b00, 0b010010>; 78395ec1688db0efe51509ad9356052f5004d8856e0Greg Claytonclass MADDV_H_ENC : MSA_3R_FMT<0b001, 0b01, 0b010010>; 784b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MADDV_W_ENC : MSA_3R_FMT<0b001, 0b10, 0b010010>; 78595ec1688db0efe51509ad9356052f5004d8856e0Greg Claytonclass MADDV_D_ENC : MSA_3R_FMT<0b001, 0b11, 0b010010>; 786b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 787b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAX_A_B_ENC : MSA_3R_FMT<0b110, 0b00, 0b001110>; 788b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAX_A_H_ENC : MSA_3R_FMT<0b110, 0b01, 0b001110>; 789b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAX_A_W_ENC : MSA_3R_FMT<0b110, 0b10, 0b001110>; 790b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAX_A_D_ENC : MSA_3R_FMT<0b110, 0b11, 0b001110>; 791b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 792b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAX_S_B_ENC : MSA_3R_FMT<0b010, 0b00, 0b001110>; 793b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAX_S_H_ENC : MSA_3R_FMT<0b010, 0b01, 0b001110>; 794b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAX_S_W_ENC : MSA_3R_FMT<0b010, 0b10, 0b001110>; 795b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAX_S_D_ENC : MSA_3R_FMT<0b010, 0b11, 0b001110>; 796b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 797b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAX_U_B_ENC : MSA_3R_FMT<0b011, 0b00, 0b001110>; 798b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAX_U_H_ENC : MSA_3R_FMT<0b011, 0b01, 0b001110>; 799b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytonclass MAX_U_W_ENC : MSA_3R_FMT<0b011, 0b10, 0b001110>; 800b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytonclass MAX_U_D_ENC : MSA_3R_FMT<0b011, 0b11, 0b001110>; 801b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 802b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAXI_S_B_ENC : MSA_I5_FMT<0b010, 0b00, 0b000110>; 803b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAXI_S_H_ENC : MSA_I5_FMT<0b010, 0b01, 0b000110>; 804b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAXI_S_W_ENC : MSA_I5_FMT<0b010, 0b10, 0b000110>; 805b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MAXI_S_D_ENC : MSA_I5_FMT<0b010, 0b11, 0b000110>; 806b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 80736bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass MAXI_U_B_ENC : MSA_I5_FMT<0b011, 0b00, 0b000110>; 808527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass MAXI_U_H_ENC : MSA_I5_FMT<0b011, 0b01, 0b000110>; 809527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass MAXI_U_W_ENC : MSA_I5_FMT<0b011, 0b10, 0b000110>; 810527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytonclass MAXI_U_D_ENC : MSA_I5_FMT<0b011, 0b11, 0b000110>; 811527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 81236bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass MIN_A_B_ENC : MSA_3R_FMT<0b111, 0b00, 0b001110>; 81336bc5ea5a48c19421d44f559e2165c105657b809Greg Claytonclass MIN_A_H_ENC : MSA_3R_FMT<0b111, 0b01, 0b001110>; 814b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MIN_A_W_ENC : MSA_3R_FMT<0b111, 0b10, 0b001110>; 815b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MIN_A_D_ENC : MSA_3R_FMT<0b111, 0b11, 0b001110>; 816b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 817b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MIN_S_B_ENC : MSA_3R_FMT<0b100, 0b00, 0b001110>; 818b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MIN_S_H_ENC : MSA_3R_FMT<0b100, 0b01, 0b001110>; 8199c236733d43e6250c8a5671a438f4a2afeb9c0b2Greg Claytonclass MIN_S_W_ENC : MSA_3R_FMT<0b100, 0b10, 0b001110>; 820b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MIN_S_D_ENC : MSA_3R_FMT<0b100, 0b11, 0b001110>; 821b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 822b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MIN_U_B_ENC : MSA_3R_FMT<0b101, 0b00, 0b001110>; 823b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MIN_U_H_ENC : MSA_3R_FMT<0b101, 0b01, 0b001110>; 824b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MIN_U_W_ENC : MSA_3R_FMT<0b101, 0b10, 0b001110>; 825b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MIN_U_D_ENC : MSA_3R_FMT<0b101, 0b11, 0b001110>; 826b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 827b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MINI_S_B_ENC : MSA_I5_FMT<0b100, 0b00, 0b000110>; 828b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MINI_S_H_ENC : MSA_I5_FMT<0b100, 0b01, 0b000110>; 829b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MINI_S_W_ENC : MSA_I5_FMT<0b100, 0b10, 0b000110>; 830b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MINI_S_D_ENC : MSA_I5_FMT<0b100, 0b11, 0b000110>; 831b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 8329a91ef68c2650113da5488e09e9cb5f6aa88f6abSean Callananclass MINI_U_B_ENC : MSA_I5_FMT<0b101, 0b00, 0b000110>; 833b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MINI_U_H_ENC : MSA_I5_FMT<0b101, 0b01, 0b000110>; 834b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MINI_U_W_ENC : MSA_I5_FMT<0b101, 0b10, 0b000110>; 8359a91ef68c2650113da5488e09e9cb5f6aa88f6abSean Callananclass MINI_U_D_ENC : MSA_I5_FMT<0b101, 0b11, 0b000110>; 836b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 8379a91ef68c2650113da5488e09e9cb5f6aa88f6abSean Callananclass MOD_S_B_ENC : MSA_3R_FMT<0b110, 0b00, 0b010010>; 8389a91ef68c2650113da5488e09e9cb5f6aa88f6abSean Callananclass MOD_S_H_ENC : MSA_3R_FMT<0b110, 0b01, 0b010010>; 8399a91ef68c2650113da5488e09e9cb5f6aa88f6abSean Callananclass MOD_S_W_ENC : MSA_3R_FMT<0b110, 0b10, 0b010010>; 840b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MOD_S_D_ENC : MSA_3R_FMT<0b110, 0b11, 0b010010>; 841b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 842b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MOD_U_B_ENC : MSA_3R_FMT<0b111, 0b00, 0b010010>; 843b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MOD_U_H_ENC : MSA_3R_FMT<0b111, 0b01, 0b010010>; 844b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MOD_U_W_ENC : MSA_3R_FMT<0b111, 0b10, 0b010010>; 845b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MOD_U_D_ENC : MSA_3R_FMT<0b111, 0b11, 0b010010>; 846b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 847b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MOVE_V_ENC : MSA_ELM_FMT<0b0010111110, 0b011001>; 848b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 849b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MSUB_Q_H_ENC : MSA_3RF_FMT<0b0110, 0b0, 0b011100>; 850b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MSUB_Q_W_ENC : MSA_3RF_FMT<0b0110, 0b1, 0b011100>; 851b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 85224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MSUBR_Q_H_ENC : MSA_3RF_FMT<0b1110, 0b0, 0b011100>; 85324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MSUBR_Q_W_ENC : MSA_3RF_FMT<0b1110, 0b1, 0b011100>; 85424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 85524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MSUBV_B_ENC : MSA_3R_FMT<0b010, 0b00, 0b010010>; 85624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MSUBV_H_ENC : MSA_3R_FMT<0b010, 0b01, 0b010010>; 85724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MSUBV_W_ENC : MSA_3R_FMT<0b010, 0b10, 0b010010>; 85824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MSUBV_D_ENC : MSA_3R_FMT<0b010, 0b11, 0b010010>; 85924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 86024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MUL_Q_H_ENC : MSA_3RF_FMT<0b0100, 0b0, 0b011100>; 86124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MUL_Q_W_ENC : MSA_3RF_FMT<0b0100, 0b1, 0b011100>; 86224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 863b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass MULR_Q_H_ENC : MSA_3RF_FMT<0b1100, 0b0, 0b011100>; 86424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MULR_Q_W_ENC : MSA_3RF_FMT<0b1100, 0b1, 0b011100>; 86524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 86624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MULV_B_ENC : MSA_3R_FMT<0b000, 0b00, 0b010010>; 86724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MULV_H_ENC : MSA_3R_FMT<0b000, 0b01, 0b010010>; 86824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MULV_W_ENC : MSA_3R_FMT<0b000, 0b10, 0b010010>; 86924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass MULV_D_ENC : MSA_3R_FMT<0b000, 0b11, 0b010010>; 87024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 87124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass NLOC_B_ENC : MSA_2R_FMT<0b11000010, 0b00, 0b011110>; 87224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass NLOC_H_ENC : MSA_2R_FMT<0b11000010, 0b01, 0b011110>; 87324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass NLOC_W_ENC : MSA_2R_FMT<0b11000010, 0b10, 0b011110>; 87424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass NLOC_D_ENC : MSA_2R_FMT<0b11000010, 0b11, 0b011110>; 87524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 876b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass NLZC_B_ENC : MSA_2R_FMT<0b11000011, 0b00, 0b011110>; 877b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass NLZC_H_ENC : MSA_2R_FMT<0b11000011, 0b01, 0b011110>; 87824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass NLZC_W_ENC : MSA_2R_FMT<0b11000011, 0b10, 0b011110>; 87924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass NLZC_D_ENC : MSA_2R_FMT<0b11000011, 0b11, 0b011110>; 880b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 881b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass NOR_V_ENC : MSA_VEC_FMT<0b00010, 0b011110>; 88224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 88324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass NORI_B_ENC : MSA_I8_FMT<0b10, 0b000000>; 88424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 88524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass OR_V_ENC : MSA_VEC_FMT<0b00001, 0b011110>; 88624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 88724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass ORI_B_ENC : MSA_I8_FMT<0b01, 0b000000>; 88824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 88924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PCKEV_B_ENC : MSA_3R_FMT<0b010, 0b00, 0b010100>; 89024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PCKEV_H_ENC : MSA_3R_FMT<0b010, 0b01, 0b010100>; 89124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PCKEV_W_ENC : MSA_3R_FMT<0b010, 0b10, 0b010100>; 89224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PCKEV_D_ENC : MSA_3R_FMT<0b010, 0b11, 0b010100>; 89340e278caddf5442776f9408f20d757cc85fe630aSean Callanan 89424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PCKOD_B_ENC : MSA_3R_FMT<0b011, 0b00, 0b010100>; 89524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PCKOD_H_ENC : MSA_3R_FMT<0b011, 0b01, 0b010100>; 89624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PCKOD_W_ENC : MSA_3R_FMT<0b011, 0b10, 0b010100>; 89724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PCKOD_D_ENC : MSA_3R_FMT<0b011, 0b11, 0b010100>; 89824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 899b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass PCNT_B_ENC : MSA_2R_FMT<0b11000001, 0b00, 0b011110>; 90024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PCNT_H_ENC : MSA_2R_FMT<0b11000001, 0b01, 0b011110>; 90124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PCNT_W_ENC : MSA_2R_FMT<0b11000001, 0b10, 0b011110>; 90224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PCNT_D_ENC : MSA_2R_FMT<0b11000001, 0b11, 0b011110>; 90324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 90424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SAT_S_B_ENC : MSA_BIT_B_FMT<0b000, 0b001010>; 90524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SAT_S_H_ENC : MSA_BIT_H_FMT<0b000, 0b001010>; 90624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SAT_S_W_ENC : MSA_BIT_W_FMT<0b000, 0b001010>; 90724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SAT_S_D_ENC : MSA_BIT_D_FMT<0b000, 0b001010>; 90824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 90924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SAT_U_B_ENC : MSA_BIT_B_FMT<0b001, 0b001010>; 910b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass SAT_U_H_ENC : MSA_BIT_H_FMT<0b001, 0b001010>; 91124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SAT_U_W_ENC : MSA_BIT_W_FMT<0b001, 0b001010>; 91224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SAT_U_D_ENC : MSA_BIT_D_FMT<0b001, 0b001010>; 913b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 91424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SHF_B_ENC : MSA_I8_FMT<0b00, 0b000010>; 91524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SHF_H_ENC : MSA_I8_FMT<0b01, 0b000010>; 91624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SHF_W_ENC : MSA_I8_FMT<0b10, 0b000010>; 91724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 91824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLD_B_ENC : MSA_3R_INDEX_FMT<0b000, 0b00, 0b010100>; 91924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLD_H_ENC : MSA_3R_INDEX_FMT<0b000, 0b01, 0b010100>; 92024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLD_W_ENC : MSA_3R_INDEX_FMT<0b000, 0b10, 0b010100>; 92124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLD_D_ENC : MSA_3R_INDEX_FMT<0b000, 0b11, 0b010100>; 92224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 92324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLDI_B_ENC : MSA_ELM_B_FMT<0b0000, 0b011001>; 92424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLDI_H_ENC : MSA_ELM_H_FMT<0b0000, 0b011001>; 92524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLDI_W_ENC : MSA_ELM_W_FMT<0b0000, 0b011001>; 92624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLDI_D_ENC : MSA_ELM_D_FMT<0b0000, 0b011001>; 92724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 92824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLL_B_ENC : MSA_3R_FMT<0b000, 0b00, 0b001101>; 92924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLL_H_ENC : MSA_3R_FMT<0b000, 0b01, 0b001101>; 93024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLL_W_ENC : MSA_3R_FMT<0b000, 0b10, 0b001101>; 93124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLL_D_ENC : MSA_3R_FMT<0b000, 0b11, 0b001101>; 93224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 933b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass SLLI_B_ENC : MSA_BIT_B_FMT<0b000, 0b001001>; 93424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLLI_H_ENC : MSA_BIT_H_FMT<0b000, 0b001001>; 93524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLLI_W_ENC : MSA_BIT_W_FMT<0b000, 0b001001>; 93624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SLLI_D_ENC : MSA_BIT_D_FMT<0b000, 0b001001>; 93724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 93824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass SPLAT_B_ENC : MSA_3R_INDEX_FMT<0b001, 0b00, 0b010100>; 939fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Claytonclass SPLAT_H_ENC : MSA_3R_INDEX_FMT<0b001, 0b01, 0b010100>; 94046c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SPLAT_W_ENC : MSA_3R_INDEX_FMT<0b001, 0b10, 0b010100>; 94146c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SPLAT_D_ENC : MSA_3R_INDEX_FMT<0b001, 0b11, 0b010100>; 94224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 94364742744396c966e8de770e765130629b0c78335Greg Claytonclass SPLATI_B_ENC : MSA_ELM_B_FMT<0b0001, 0b011001>; 94464742744396c966e8de770e765130629b0c78335Greg Claytonclass SPLATI_H_ENC : MSA_ELM_H_FMT<0b0001, 0b011001>; 94546c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SPLATI_W_ENC : MSA_ELM_W_FMT<0b0001, 0b011001>; 94624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SPLATI_D_ENC : MSA_ELM_D_FMT<0b0001, 0b011001>; 94724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 94824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SRA_B_ENC : MSA_3R_FMT<0b001, 0b00, 0b001101>; 9490e191607adcb0ea8ebd06c278be648a7f5c0097fGreg Claytonclass SRA_H_ENC : MSA_3R_FMT<0b001, 0b01, 0b001101>; 9500e191607adcb0ea8ebd06c278be648a7f5c0097fGreg Claytonclass SRA_W_ENC : MSA_3R_FMT<0b001, 0b10, 0b001101>; 95124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SRA_D_ENC : MSA_3R_FMT<0b001, 0b11, 0b001101>; 95224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 95346c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SRAI_B_ENC : MSA_BIT_B_FMT<0b001, 0b001001>; 95446c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SRAI_H_ENC : MSA_BIT_H_FMT<0b001, 0b001001>; 95546c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SRAI_W_ENC : MSA_BIT_W_FMT<0b001, 0b001001>; 95664742744396c966e8de770e765130629b0c78335Greg Claytonclass SRAI_D_ENC : MSA_BIT_D_FMT<0b001, 0b001001>; 95764742744396c966e8de770e765130629b0c78335Greg Clayton 95864742744396c966e8de770e765130629b0c78335Greg Claytonclass SRAR_B_ENC : MSA_3R_FMT<0b001, 0b00, 0b010101>; 95964742744396c966e8de770e765130629b0c78335Greg Claytonclass SRAR_H_ENC : MSA_3R_FMT<0b001, 0b01, 0b010101>; 96064742744396c966e8de770e765130629b0c78335Greg Claytonclass SRAR_W_ENC : MSA_3R_FMT<0b001, 0b10, 0b010101>; 96146c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SRAR_D_ENC : MSA_3R_FMT<0b001, 0b11, 0b010101>; 96246c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Clayton 96324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SRARI_B_ENC : MSA_BIT_B_FMT<0b010, 0b001010>; 96424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SRARI_H_ENC : MSA_BIT_H_FMT<0b010, 0b001010>; 96524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SRARI_W_ENC : MSA_BIT_W_FMT<0b010, 0b001010>; 96624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SRARI_D_ENC : MSA_BIT_D_FMT<0b010, 0b001010>; 96754e7afa84d945f9137f9372ecde432f9e1a702fcGreg Clayton 96824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SRL_B_ENC : MSA_3R_FMT<0b010, 0b00, 0b001101>; 96946c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SRL_H_ENC : MSA_3R_FMT<0b010, 0b01, 0b001101>; 97046c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SRL_W_ENC : MSA_3R_FMT<0b010, 0b10, 0b001101>; 97146c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SRL_D_ENC : MSA_3R_FMT<0b010, 0b11, 0b001101>; 97264742744396c966e8de770e765130629b0c78335Greg Clayton 97364742744396c966e8de770e765130629b0c78335Greg Claytonclass SRLI_B_ENC : MSA_BIT_B_FMT<0b010, 0b001001>; 97464742744396c966e8de770e765130629b0c78335Greg Claytonclass SRLI_H_ENC : MSA_BIT_H_FMT<0b010, 0b001001>; 97546c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SRLI_W_ENC : MSA_BIT_W_FMT<0b010, 0b001001>; 97664742744396c966e8de770e765130629b0c78335Greg Claytonclass SRLI_D_ENC : MSA_BIT_D_FMT<0b010, 0b001001>; 97764742744396c966e8de770e765130629b0c78335Greg Clayton 97864742744396c966e8de770e765130629b0c78335Greg Claytonclass SRLR_B_ENC : MSA_3R_FMT<0b010, 0b00, 0b010101>; 97946c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytonclass SRLR_H_ENC : MSA_3R_FMT<0b010, 0b01, 0b010101>; 98024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SRLR_W_ENC : MSA_3R_FMT<0b010, 0b10, 0b010101>; 98124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SRLR_D_ENC : MSA_3R_FMT<0b010, 0b11, 0b010101>; 98246c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Clayton 98324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SRLRI_B_ENC : MSA_BIT_B_FMT<0b011, 0b001010>; 98424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SRLRI_H_ENC : MSA_BIT_H_FMT<0b011, 0b001010>; 9855a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Inghamclass SRLRI_W_ENC : MSA_BIT_W_FMT<0b011, 0b001010>; 9865a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Inghamclass SRLRI_D_ENC : MSA_BIT_D_FMT<0b011, 0b001010>; 9875a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham 9885a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Inghamclass ST_B_ENC : MSA_MI10_FMT<0b00, 0b1001>; 9895a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Inghamclass ST_H_ENC : MSA_MI10_FMT<0b01, 0b1001>; 9905a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Inghamclass ST_W_ENC : MSA_MI10_FMT<0b10, 0b1001>; 99124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ST_D_ENC : MSA_MI10_FMT<0b11, 0b1001>; 99224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 99324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBS_S_B_ENC : MSA_3R_FMT<0b000, 0b00, 0b010001>; 99424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBS_S_H_ENC : MSA_3R_FMT<0b000, 0b01, 0b010001>; 99524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBS_S_W_ENC : MSA_3R_FMT<0b000, 0b10, 0b010001>; 99673844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass SUBS_S_D_ENC : MSA_3R_FMT<0b000, 0b11, 0b010001>; 99724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9985a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Inghamclass SUBS_U_B_ENC : MSA_3R_FMT<0b001, 0b00, 0b010001>; 99924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBS_U_H_ENC : MSA_3R_FMT<0b001, 0b01, 0b010001>; 100024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBS_U_W_ENC : MSA_3R_FMT<0b001, 0b10, 0b010001>; 100124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBS_U_D_ENC : MSA_3R_FMT<0b001, 0b11, 0b010001>; 10025a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham 10035a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Inghamclass SUBSUS_U_B_ENC : MSA_3R_FMT<0b010, 0b00, 0b010001>; 100424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBSUS_U_H_ENC : MSA_3R_FMT<0b010, 0b01, 0b010001>; 100524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBSUS_U_W_ENC : MSA_3R_FMT<0b010, 0b10, 0b010001>; 100624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBSUS_U_D_ENC : MSA_3R_FMT<0b010, 0b11, 0b010001>; 100721f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham 100864742744396c966e8de770e765130629b0c78335Greg Claytonclass SUBSUU_S_B_ENC : MSA_3R_FMT<0b011, 0b00, 0b010001>; 100924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBSUU_S_H_ENC : MSA_3R_FMT<0b011, 0b01, 0b010001>; 1010ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass SUBSUU_S_W_ENC : MSA_3R_FMT<0b011, 0b10, 0b010001>; 101124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBSUU_S_D_ENC : MSA_3R_FMT<0b011, 0b11, 0b010001>; 101224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 10134e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylorclass SUBV_B_ENC : MSA_3R_FMT<0b001, 0b00, 0b001110>; 10144e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylorclass SUBV_H_ENC : MSA_3R_FMT<0b001, 0b01, 0b001110>; 101524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBV_W_ENC : MSA_3R_FMT<0b001, 0b10, 0b001110>; 101624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SUBV_D_ENC : MSA_3R_FMT<0b001, 0b11, 0b001110>; 101720d338fad87eba91de65aa9bec76e01c04472848Greg Clayton 101820d338fad87eba91de65aa9bec76e01c04472848Greg Claytonclass SUBVI_B_ENC : MSA_I5_FMT<0b001, 0b00, 0b000110>; 101920d338fad87eba91de65aa9bec76e01c04472848Greg Claytonclass SUBVI_H_ENC : MSA_I5_FMT<0b001, 0b01, 0b000110>; 102020d338fad87eba91de65aa9bec76e01c04472848Greg Claytonclass SUBVI_W_ENC : MSA_I5_FMT<0b001, 0b10, 0b000110>; 1021861efb3f6e225e45c45511d6da894633b36025a1Caroline Ticeclass SUBVI_D_ENC : MSA_I5_FMT<0b001, 0b11, 0b000110>; 102220d338fad87eba91de65aa9bec76e01c04472848Greg Clayton 1023861efb3f6e225e45c45511d6da894633b36025a1Caroline Ticeclass VSHF_B_ENC : MSA_3R_FMT<0b000, 0b00, 0b010101>; 1024a875b64ab8d258b28959d05eea37cb5dfdd72730Greg Claytonclass VSHF_H_ENC : MSA_3R_FMT<0b000, 0b01, 0b010101>; 102520d338fad87eba91de65aa9bec76e01c04472848Greg Claytonclass VSHF_W_ENC : MSA_3R_FMT<0b000, 0b10, 0b010101>; 1026fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Claytonclass VSHF_D_ENC : MSA_3R_FMT<0b000, 0b11, 0b010101>; 1027bd06ff435614ff4e884c40f3ea13e24f0cef96f7Greg Clayton 1028fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ongclass XOR_V_ENC : MSA_VEC_FMT<0b00011, 0b011110>; 1029fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ong 1030613b8739a4d489b7f1c571288d5786768c024205Greg Claytonclass XORI_B_ENC : MSA_I8_FMT<0b11, 0b000000>; 1031613b8739a4d489b7f1c571288d5786768c024205Greg Clayton 1032ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton// Instruction desc. 10336cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callananclass MSA_BIT_B_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 1034061ca65c4b666f8352ba08700ca4e5fa71ebb4a9Greg Clayton RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 1035061ca65c4b666f8352ba08700ca4e5fa71ebb4a9Greg Clayton InstrItinClass itin = NoItinerary> { 10364389256aecd2693109969c21fa2f00c4612320b3Jim Ingham dag OutOperandList = (outs ROWD:$wd); 1037d0bdddff8bc6dd5f71492452ce2bbd72fdaa147bJim Ingham dag InOperandList = (ins ROWS:$ws, uimm3:$m); 1038addad59552c206466dea98c4a645a471a41252b4Greg Clayton string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $m"); 103989e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Ingham list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, immZExt3:$m))]; 10401d9c802d12647830b1a9dc037d731d7da0009a13Jason Molenda InstrItinClass Itinerary = itin; 10411d9c802d12647830b1a9dc037d731d7da0009a13Jason Molenda} 104224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 10435a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Inghamclass MSA_BIT_H_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 10441ebef44c126bd3a615b3ad844c46a82a82efa0e7Caroline Tice RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 1045952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton InstrItinClass itin = NoItinerary> { 104624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs ROWD:$wd); 104724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag InOperandList = (ins ROWS:$ws, uimm4:$m); 104824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $m"); 104949ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, immZExt4:$m))]; 105049ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton InstrItinClass Itinerary = itin; 105149ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton} 105249ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton 1053fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ongclass MSA_BIT_W_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 105449ce682dfa7993d31206cea19ce7006cd3f3077eGreg Clayton RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 1055843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton InstrItinClass itin = NoItinerary> { 1056843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton dag OutOperandList = (outs ROWD:$wd); 1057843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton dag InOperandList = (ins ROWS:$ws, uimm5:$m); 1058843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $m"); 105924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, immZExt5:$m))]; 106024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = itin; 106124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 106224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1063fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ongclass MSA_BIT_D_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 1064fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ong RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 106524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass itin = NoItinerary> { 106624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs ROWD:$wd); 10675d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham dag InOperandList = (ins ROWS:$ws, uimm6:$m); 10685d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $m"); 106924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, immZExt6:$m))]; 107024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = itin; 107124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 107224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 107324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_BIT_SPLAT_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 107424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SplatComplexPattern SplatImm, 107524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 107624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass itin = NoItinerary> { 107724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs ROWD:$wd); 107824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag InOperandList = (ins ROWS:$ws, SplatImm.OpClass:$m); 107924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $m"); 108024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, SplatImm:$m))]; 1081952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton InstrItinClass Itinerary = itin; 108224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 108324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 108424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_COPY_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 108524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ValueType VecTy, RegisterOperand ROD, 108624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROWS, 108773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton InstrItinClass itin = NoItinerary> { 108873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton dag OutOperandList = (outs ROD:$rd); 108973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton dag InOperandList = (ins ROWS:$ws, uimm4:$n); 109073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton string AsmString = !strconcat(instr_asm, "\t$rd, $ws[$n]"); 109173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton list<dag> Pattern = [(set ROD:$rd, (OpNode (VecTy ROWS:$ws), immZExt4:$n))]; 109273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton InstrItinClass Itinerary = itin; 109373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton} 109473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 109573844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass MSA_ELM_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 109624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 109724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass itin = NoItinerary> { 109824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs ROWD:$wd); 1099ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton dag InOperandList = (ins ROWS:$ws, uimm4:$n); 1100ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton string AsmString = !strconcat(instr_asm, "\t$wd, $ws[$n]"); 1101ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, immZExt4:$n))]; 1102ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton InstrItinClass Itinerary = itin; 1103ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton} 1104ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton 1105ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Claytonclass MSA_COPY_PSEUDO_BASE<SDPatternOperator OpNode, ValueType VecTy, 1106ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton RegisterClass RCD, RegisterClass RCWS> : 1107ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton MipsPseudo<(outs RCD:$wd), (ins RCWS:$ws, uimm4:$n), 1108ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton [(set RCD:$wd, (OpNode (VecTy RCWS:$ws), immZExt4:$n))]> { 1109ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton bit usesCustomInserter = 1; 1110761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham} 1111761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham 1112761afb822b18c46b2ad84be03f372e90ac1e6143Jim Inghamclass MSA_I5_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 1113761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham SplatComplexPattern SplatImm, RegisterOperand ROWD, 1114761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham RegisterOperand ROWS = ROWD, 1115ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton InstrItinClass itin = NoItinerary> { 1116ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton dag OutOperandList = (outs ROWD:$wd); 1117ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton dag InOperandList = (ins ROWS:$ws, SplatImm.OpClass:$imm); 1118ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $imm"); 1119ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, SplatImm:$imm))]; 1120ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton InstrItinClass Itinerary = itin; 1121ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton} 1122ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton 1123ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Claytonclass MSA_I8_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 1124ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton SplatComplexPattern SplatImm, RegisterOperand ROWD, 1125ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton RegisterOperand ROWS = ROWD, 11262f57db09a49f2a05a620b8163bbe1e748a46ec73Greg Clayton InstrItinClass itin = NoItinerary> { 11272f57db09a49f2a05a620b8163bbe1e748a46ec73Greg Clayton dag OutOperandList = (outs ROWD:$wd); 11282f57db09a49f2a05a620b8163bbe1e748a46ec73Greg Clayton dag InOperandList = (ins ROWS:$ws, SplatImm.OpClass:$u8); 112924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $u8"); 113024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, SplatImm:$u8))]; 113188fa7bdfdc4b4880bd1fc12b95fa5a37a7457c74Jim Ingham InstrItinClass Itinerary = itin; 113288fa7bdfdc4b4880bd1fc12b95fa5a37a7457c74Jim Ingham} 113388fa7bdfdc4b4880bd1fc12b95fa5a37a7457c74Jim Ingham 1134182be6a8df48d9c22ac6a0a5ad58b962887f4f11Greg Clayton// This class is deprecated and will be removed in the next few patches 1135182be6a8df48d9c22ac6a0a5ad58b962887f4f11Greg Claytonclass MSA_I8_X_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 113637f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Clayton RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 1137182be6a8df48d9c22ac6a0a5ad58b962887f4f11Greg Clayton InstrItinClass itin = NoItinerary> { 11384e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylor dag OutOperandList = (outs ROWD:$wd); 113913d24fb1817faa7ccc4cfd799113ba1a2b8968ebGreg Clayton dag InOperandList = (ins ROWS:$ws, uimm8:$u8); 1140182be6a8df48d9c22ac6a0a5ad58b962887f4f11Greg Clayton string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $u8"); 1141182be6a8df48d9c22ac6a0a5ad58b962887f4f11Greg Clayton list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, immZExt8:$u8))]; 1142182be6a8df48d9c22ac6a0a5ad58b962887f4f11Greg Clayton InstrItinClass Itinerary = itin; 1143182be6a8df48d9c22ac6a0a5ad58b962887f4f11Greg Clayton} 1144182be6a8df48d9c22ac6a0a5ad58b962887f4f11Greg Clayton 1145182be6a8df48d9c22ac6a0a5ad58b962887f4f11Greg Claytonclass MSA_I8_SHF_DESC_BASE<string instr_asm, RegisterOperand ROWD, 1146182be6a8df48d9c22ac6a0a5ad58b962887f4f11Greg Clayton RegisterOperand ROWS = ROWD, 1147843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton InstrItinClass itin = NoItinerary> { 1148843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton dag OutOperandList = (outs ROWD:$wd); 1149843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton dag InOperandList = (ins ROWS:$ws, uimm8:$u8); 1150843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $u8"); 1151843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton list<dag> Pattern = [(set ROWD:$wd, (MipsSHF immZExt8:$u8, ROWS:$ws))]; 1152843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton InstrItinClass Itinerary = itin; 1153843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton} 1154843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton 1155843327854a86a1d44f03b838767575ccba8bb77aGreg Claytonclass MSA_I10_LDI_DESC_BASE<string instr_asm, RegisterOperand ROWD, 1156843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton InstrItinClass itin = NoItinerary> { 1157843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton dag OutOperandList = (outs ROWD:$wd); 1158843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton dag InOperandList = (ins vsplat_simm10:$s10); 1159843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton string AsmString = !strconcat(instr_asm, "\t$wd, $s10"); 1160cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste // LDI is matched using custom matching code in MipsSEISelDAGToDAG.cpp 1161cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste list<dag> Pattern = []; 1162cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste bit hasSideEffects = 0; 1163cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste InstrItinClass Itinerary = itin; 1164d0bdddff8bc6dd5f71492452ce2bbd72fdaa147bJim Ingham} 116524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 116624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_2R_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 116724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 116824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass itin = NoItinerary> { 116924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs ROWD:$wd); 117024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag InOperandList = (ins ROWS:$ws); 117124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wd, $ws"); 117224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws))]; 117324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = itin; 117424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 117524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 117624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_2R_FILL_DESC_BASE<string instr_asm, ValueType VT, 117724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SDPatternOperator OpNode, RegisterOperand ROWD, 117824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROS = ROWD, 117924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass itin = NoItinerary> { 118024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs ROWD:$wd); 118124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag InOperandList = (ins ROS:$rs); 118224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wd, $rs"); 118324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set ROWD:$wd, (VT (OpNode ROS:$rs)))]; 118424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = itin; 118524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 118624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 118724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_2R_FILL_PSEUDO_BASE<ValueType VT, SDPatternOperator OpNode, 118824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterClass RCWD, RegisterClass RCWS = RCWD> : 118924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MipsPseudo<(outs RCWD:$wd), (ins RCWS:$fs), 119024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner [(set RCWD:$wd, (OpNode RCWS:$fs))]> { 119124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner let usesCustomInserter = 1; 119224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 119324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 119424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_2RF_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 119524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 119624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass itin = NoItinerary> { 119724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs ROWD:$wd); 119824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag InOperandList = (ins ROWS:$ws); 119924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wd, $ws"); 120024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws))]; 120124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = itin; 120224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 120324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 120424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_3R_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 120524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 120624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROWT = ROWD, 120724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass itin = NoItinerary> { 120824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs ROWD:$wd); 120924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag InOperandList = (ins ROWS:$ws, ROWT:$wt); 121024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $wt"); 121124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, ROWT:$wt))]; 121224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = itin; 121324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 121424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 121524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_3R_VSHF_DESC_BASE<string instr_asm, RegisterOperand ROWD, 121624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROWS = ROWD, 121724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROWT = ROWD, 121824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass itin = NoItinerary> { 121924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs ROWD:$wd); 122024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag InOperandList = (ins ROWD:$wd_in, ROWS:$ws, ROWT:$wt); 122124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $wt"); 122224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set ROWD:$wd, (MipsVSHF ROWD:$wd_in, ROWS:$ws, 122324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ROWT:$wt))]; 1224bb1af9ce3e25eae9916f85cb9a0c82e291c20bb4Greg Clayton string Constraints = "$wd = $wd_in"; 122524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = itin; 122621f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham} 122721f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham 122821f37ad875d4f50d1b4b3d307e120f6d27103730Jim Inghamclass MSA_3R_INDEX_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 1229bb1af9ce3e25eae9916f85cb9a0c82e291c20bb4Greg Clayton RegisterOperand ROWD, RegisterOperand ROWS, 1230bb1af9ce3e25eae9916f85cb9a0c82e291c20bb4Greg Clayton RegisterOperand RORT, 123121f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham InstrItinClass itin = NoItinerary> { 123221f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham dag OutOperandList = (outs ROWD:$wd); 123321f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham dag InOperandList = (ins ROWS:$ws, RORT:$rt); 123421f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham string AsmString = !strconcat(instr_asm, "\t$wd, $ws[$rt]"); 123521f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, RORT:$rt))]; 123621f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham InstrItinClass Itinerary = itin; 123721f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham} 123821f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham 1239bb1af9ce3e25eae9916f85cb9a0c82e291c20bb4Greg Claytonclass MSA_3R_4R_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 124021f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 1241bb1af9ce3e25eae9916f85cb9a0c82e291c20bb4Greg Clayton RegisterOperand ROWT = ROWD, 1242bb1af9ce3e25eae9916f85cb9a0c82e291c20bb4Greg Clayton InstrItinClass itin = NoItinerary> { 1243bb1af9ce3e25eae9916f85cb9a0c82e291c20bb4Greg Clayton dag OutOperandList = (outs ROWD:$wd); 124421f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham dag InOperandList = (ins ROWD:$wd_in, ROWS:$ws, ROWT:$wt); 124521f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $wt"); 124621f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham list<dag> Pattern = [(set ROWD:$wd, 124721f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham (OpNode ROWD:$wd_in, ROWS:$ws, ROWT:$wt))]; 124821f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham InstrItinClass Itinerary = itin; 124921f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham string Constraints = "$wd = $wd_in"; 125021f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham} 125121f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham 125221f37ad875d4f50d1b4b3d307e120f6d27103730Jim Inghamclass MSA_3RF_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 125321f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 125421f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham RegisterOperand ROWT = ROWD, 125521f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham InstrItinClass itin = NoItinerary> : 125621f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham MSA_3R_DESC_BASE<instr_asm, OpNode, ROWD, ROWS, ROWT, itin>; 125721f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham 125821f37ad875d4f50d1b4b3d307e120f6d27103730Jim Inghamclass MSA_3RF_4RF_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 125921f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 126021f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham RegisterOperand ROWT = ROWD, 126124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass itin = NoItinerary> : 126224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA_3R_4R_DESC_BASE<instr_asm, OpNode, ROWD, ROWS, ROWT, itin>; 126324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 126424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_CBRANCH_DESC_BASE<string instr_asm, RegisterOperand ROWD> { 126524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs); 126624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag InOperandList = (ins ROWD:$wt, brtarget:$offset); 126724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wt, $offset"); 126824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = []; 126924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = IIBranch; 127024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bit isBranch = 1; 127124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bit isTerminator = 1; 127224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bit hasDelaySlot = 1; 1273d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton list<Register> Defs = [AT]; 127424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 127524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1276d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Claytonclass MSA_INSERT_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 1277d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton RegisterOperand ROWD, RegisterOperand ROS, 1278d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton InstrItinClass itin = NoItinerary> { 1279d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton dag OutOperandList = (outs ROWD:$wd); 1280d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton dag InOperandList = (ins ROWD:$wd_in, ROS:$rs, uimm6:$n); 128124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wd[$n], $rs"); 128224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWD:$wd_in, 128324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ROS:$rs, 128424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner immZExt6:$n))]; 128524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = itin; 128624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string Constraints = "$wd = $wd_in"; 128724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 128824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 128924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_INSERT_PSEUDO_BASE<SDPatternOperator OpNode, ValueType Ty, 129024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROWD, RegisterOperand ROFS> : 129124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MipsPseudo<(outs ROWD:$wd), (ins ROWD:$wd_in, uimm6:$n, ROFS:$fs), 129263e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham [(set ROWD:$wd, (OpNode (Ty ROWD:$wd_in), ROFS:$fs, 129363e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham immZExt6:$n))]> { 129463e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham bit usesCustomInserter = 1; 129563e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham string Constraints = "$wd = $wd_in"; 129663e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham} 12975d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham 129863e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Inghamclass MSA_INSVE_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 129963e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 130063e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham InstrItinClass itin = NoItinerary> { 130163e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham dag OutOperandList = (outs ROWD:$wd); 130263e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham dag InOperandList = (ins ROWD:$wd_in, uimm6:$n, ROWS:$ws); 130363e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham string AsmString = !strconcat(instr_asm, "\t$wd[$n], $ws[0]"); 130463e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWD:$wd_in, 130563e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham immZExt6:$n, 130663e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham ROWS:$ws))]; 130763e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham InstrItinClass Itinerary = itin; 130863e24d7aeae8a7feb2aae0581e597b922749d4a1Jim Ingham string Constraints = "$wd = $wd_in"; 1309f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham} 1310f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham 1311f9f40c20b210eea72ab042c63178ca000f005ed9Jim Inghamclass MSA_VEC_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 1312f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham RegisterOperand ROWD, RegisterOperand ROWS = ROWD, 1313f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham RegisterOperand ROWT = ROWD, 13145d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham InstrItinClass itin = NoItinerary> { 1315f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham dag OutOperandList = (outs ROWD:$wd); 1316f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham dag InOperandList = (ins ROWS:$ws, ROWT:$wt); 1317f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham string AsmString = !strconcat(instr_asm, "\t$wd, $ws, $wt"); 1318f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham list<dag> Pattern = [(set ROWD:$wd, (OpNode ROWS:$ws, ROWT:$wt))]; 1319f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham InstrItinClass Itinerary = itin; 1320f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham} 1321f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham 1322f9f40c20b210eea72ab042c63178ca000f005ed9Jim Inghamclass MSA_ELM_SPLAT_DESC_BASE<string instr_asm, SplatComplexPattern SplatImm, 1323f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham RegisterOperand ROWD, 1324f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham RegisterOperand ROWS = ROWD, 1325f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham InstrItinClass itin = NoItinerary> { 132624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs ROWD:$wd); 132724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag InOperandList = (ins ROWS:$ws, SplatImm.OpClass:$n); 132824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wd, $ws[$n]"); 1329952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton list<dag> Pattern = [(set ROWD:$wd, (MipsVSHF SplatImm:$n, ROWS:$ws, 133024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ROWS:$ws))]; 133124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = itin; 133224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 133324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 133424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_VEC_PSEUDO_BASE<SDPatternOperator OpNode, RegisterOperand ROWD, 133536f63a92bae332929e1a047b59ed6df651d8537fGreg Clayton RegisterOperand ROWS = ROWD, 133636f63a92bae332929e1a047b59ed6df651d8537fGreg Clayton RegisterOperand ROWT = ROWD> : 13375d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham MipsPseudo<(outs ROWD:$wd), (ins ROWS:$ws, ROWT:$wt), 133836f63a92bae332929e1a047b59ed6df651d8537fGreg Clayton [(set ROWD:$wd, (OpNode ROWS:$ws, ROWT:$wt))]>; 13395d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham 13405d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Inghamclass ADD_A_B_DESC : MSA_3R_DESC_BASE<"add_a.b", int_mips_add_a_b, MSA128BOpnd>, 13415d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham IsCommutable; 13425d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Inghamclass ADD_A_H_DESC : MSA_3R_DESC_BASE<"add_a.h", int_mips_add_a_h, MSA128HOpnd>, 13435d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham IsCommutable; 13445d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Inghamclass ADD_A_W_DESC : MSA_3R_DESC_BASE<"add_a.w", int_mips_add_a_w, MSA128WOpnd>, 134524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 134624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADD_A_D_DESC : MSA_3R_DESC_BASE<"add_a.d", int_mips_add_a_d, MSA128DOpnd>, 134724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 134824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 134924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDS_A_B_DESC : MSA_3R_DESC_BASE<"adds_a.b", int_mips_adds_a_b, 135024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>, IsCommutable; 135124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDS_A_H_DESC : MSA_3R_DESC_BASE<"adds_a.h", int_mips_adds_a_h, 135224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>, IsCommutable; 135324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDS_A_W_DESC : MSA_3R_DESC_BASE<"adds_a.w", int_mips_adds_a_w, 135424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>, IsCommutable; 135524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDS_A_D_DESC : MSA_3R_DESC_BASE<"adds_a.d", int_mips_adds_a_d, 135624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>, IsCommutable; 1357952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton 135824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDS_S_B_DESC : MSA_3R_DESC_BASE<"adds_s.b", int_mips_adds_s_b, 135924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>, IsCommutable; 136024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDS_S_H_DESC : MSA_3R_DESC_BASE<"adds_s.h", int_mips_adds_s_h, 136124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>, IsCommutable; 136224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDS_S_W_DESC : MSA_3R_DESC_BASE<"adds_s.w", int_mips_adds_s_w, 136336f63a92bae332929e1a047b59ed6df651d8537fGreg Clayton MSA128WOpnd>, IsCommutable; 136436f63a92bae332929e1a047b59ed6df651d8537fGreg Claytonclass ADDS_S_D_DESC : MSA_3R_DESC_BASE<"adds_s.d", int_mips_adds_s_d, 136524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>, IsCommutable; 136624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 136724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDS_U_B_DESC : MSA_3R_DESC_BASE<"adds_u.b", int_mips_adds_u_b, 136824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>, IsCommutable; 136924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDS_U_H_DESC : MSA_3R_DESC_BASE<"adds_u.h", int_mips_adds_u_h, 137024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>, IsCommutable; 137124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDS_U_W_DESC : MSA_3R_DESC_BASE<"adds_u.w", int_mips_adds_u_w, 137224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>, IsCommutable; 137324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDS_U_D_DESC : MSA_3R_DESC_BASE<"adds_u.d", int_mips_adds_u_d, 137424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>, IsCommutable; 137524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 137624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDV_B_DESC : MSA_3R_DESC_BASE<"addv.b", add, MSA128BOpnd>, IsCommutable; 137724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDV_H_DESC : MSA_3R_DESC_BASE<"addv.h", add, MSA128HOpnd>, IsCommutable; 137824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDV_W_DESC : MSA_3R_DESC_BASE<"addv.w", add, MSA128WOpnd>, IsCommutable; 137924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDV_D_DESC : MSA_3R_DESC_BASE<"addv.d", add, MSA128DOpnd>, IsCommutable; 138024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 138124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDVI_B_DESC : MSA_I5_DESC_BASE<"addvi.b", add, vsplati8_uimm5, 138224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>; 138324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDVI_H_DESC : MSA_I5_DESC_BASE<"addvi.h", add, vsplati16_uimm5, 138424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 1385952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Claytonclass ADDVI_W_DESC : MSA_I5_DESC_BASE<"addvi.w", add, vsplati32_uimm5, 138624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 138724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ADDVI_D_DESC : MSA_I5_DESC_BASE<"addvi.d", add, vsplati64_uimm5, 138824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>; 138924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 139024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AND_V_DESC : MSA_VEC_DESC_BASE<"and.v", and, MSA128BOpnd>; 139172e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass AND_V_H_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<and, MSA128HOpnd>; 139272e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass AND_V_W_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<and, MSA128WOpnd>; 13935d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Inghamclass AND_V_D_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<and, MSA128DOpnd>; 139472e1c782ba1e4226da37af4722af608de9f39408Greg Clayton 13955d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Inghamclass ANDI_B_DESC : MSA_I8_DESC_BASE<"andi.b", and, vsplati8_uimm8, 13965d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham MSA128BOpnd>; 139724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 139824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ASUB_S_B_DESC : MSA_3R_DESC_BASE<"asub_s.b", int_mips_asub_s_b, 139924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>; 140024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ASUB_S_H_DESC : MSA_3R_DESC_BASE<"asub_s.h", int_mips_asub_s_h, 140124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 140272e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass ASUB_S_W_DESC : MSA_3R_DESC_BASE<"asub_s.w", int_mips_asub_s_w, 140372e1c782ba1e4226da37af4722af608de9f39408Greg Clayton MSA128WOpnd>; 140472e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass ASUB_S_D_DESC : MSA_3R_DESC_BASE<"asub_s.d", int_mips_asub_s_d, 140572e1c782ba1e4226da37af4722af608de9f39408Greg Clayton MSA128DOpnd>; 140672e1c782ba1e4226da37af4722af608de9f39408Greg Clayton 140772e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass ASUB_U_B_DESC : MSA_3R_DESC_BASE<"asub_u.b", int_mips_asub_u_b, 140824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>; 140924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ASUB_U_H_DESC : MSA_3R_DESC_BASE<"asub_u.h", int_mips_asub_u_h, 141024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 141124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ASUB_U_W_DESC : MSA_3R_DESC_BASE<"asub_u.w", int_mips_asub_u_w, 141224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 141324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ASUB_U_D_DESC : MSA_3R_DESC_BASE<"asub_u.d", int_mips_asub_u_d, 1414952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton MSA128DOpnd>; 141524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 141624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVE_S_B_DESC : MSA_3R_DESC_BASE<"ave_s.b", int_mips_ave_s_b, MSA128BOpnd>, 141724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 141824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVE_S_H_DESC : MSA_3R_DESC_BASE<"ave_s.h", int_mips_ave_s_h, MSA128HOpnd>, 141924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 142024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVE_S_W_DESC : MSA_3R_DESC_BASE<"ave_s.w", int_mips_ave_s_w, MSA128WOpnd>, 142124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 142224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVE_S_D_DESC : MSA_3R_DESC_BASE<"ave_s.d", int_mips_ave_s_d, MSA128DOpnd>, 142324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 142424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 142524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVE_U_B_DESC : MSA_3R_DESC_BASE<"ave_u.b", int_mips_ave_u_b, MSA128BOpnd>, 142624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 142724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVE_U_H_DESC : MSA_3R_DESC_BASE<"ave_u.h", int_mips_ave_u_h, MSA128HOpnd>, 142824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 142924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVE_U_W_DESC : MSA_3R_DESC_BASE<"ave_u.w", int_mips_ave_u_w, MSA128WOpnd>, 143024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 143124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVE_U_D_DESC : MSA_3R_DESC_BASE<"ave_u.d", int_mips_ave_u_d, MSA128DOpnd>, 143224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 143324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 143424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVER_S_B_DESC : MSA_3R_DESC_BASE<"aver_s.b", int_mips_aver_s_b, 143524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>, IsCommutable; 143624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVER_S_H_DESC : MSA_3R_DESC_BASE<"aver_s.h", int_mips_aver_s_h, 143724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>, IsCommutable; 143824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVER_S_W_DESC : MSA_3R_DESC_BASE<"aver_s.w", int_mips_aver_s_w, 1439638351aee118e89c658ca295cb4e9d1db7849befGreg Clayton MSA128WOpnd>, IsCommutable; 144024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVER_S_D_DESC : MSA_3R_DESC_BASE<"aver_s.d", int_mips_aver_s_d, 144124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>, IsCommutable; 144224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 144324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVER_U_B_DESC : MSA_3R_DESC_BASE<"aver_u.b", int_mips_aver_u_b, 144424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>, IsCommutable; 144524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVER_U_H_DESC : MSA_3R_DESC_BASE<"aver_u.h", int_mips_aver_u_h, 144624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>, IsCommutable; 144724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVER_U_W_DESC : MSA_3R_DESC_BASE<"aver_u.w", int_mips_aver_u_w, 144872e1c782ba1e4226da37af4722af608de9f39408Greg Clayton MSA128WOpnd>, IsCommutable; 144924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AVER_U_D_DESC : MSA_3R_DESC_BASE<"aver_u.d", int_mips_aver_u_d, 145024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>, IsCommutable; 1451952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton 145268ca823ad1ab94805bcee03f3ad0b649d94e5a09Greg Claytonclass BCLR_B_DESC : MSA_3R_DESC_BASE<"bclr.b", int_mips_bclr_b, MSA128BOpnd>; 145368ca823ad1ab94805bcee03f3ad0b649d94e5a09Greg Claytonclass BCLR_H_DESC : MSA_3R_DESC_BASE<"bclr.h", int_mips_bclr_h, MSA128HOpnd>; 145468ca823ad1ab94805bcee03f3ad0b649d94e5a09Greg Claytonclass BCLR_W_DESC : MSA_3R_DESC_BASE<"bclr.w", int_mips_bclr_w, MSA128WOpnd>; 145568ca823ad1ab94805bcee03f3ad0b649d94e5a09Greg Claytonclass BCLR_D_DESC : MSA_3R_DESC_BASE<"bclr.d", int_mips_bclr_d, MSA128DOpnd>; 145668ca823ad1ab94805bcee03f3ad0b649d94e5a09Greg Clayton 145768ca823ad1ab94805bcee03f3ad0b649d94e5a09Greg Claytonclass BCLRI_B_DESC : MSA_BIT_B_DESC_BASE<"bclri.b", int_mips_bclri_b, 145868ca823ad1ab94805bcee03f3ad0b649d94e5a09Greg Clayton MSA128BOpnd>; 145972e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass BCLRI_H_DESC : MSA_BIT_H_DESC_BASE<"bclri.h", int_mips_bclri_h, 146072e1c782ba1e4226da37af4722af608de9f39408Greg Clayton MSA128HOpnd>; 146168ca823ad1ab94805bcee03f3ad0b649d94e5a09Greg Claytonclass BCLRI_W_DESC : MSA_BIT_W_DESC_BASE<"bclri.w", int_mips_bclri_w, 1462644ddfbc1b36eabdb93c5acb150f9a77a92ee1fdGreg Clayton MSA128WOpnd>; 1463644ddfbc1b36eabdb93c5acb150f9a77a92ee1fdGreg Claytonclass BCLRI_D_DESC : MSA_BIT_D_DESC_BASE<"bclri.d", int_mips_bclri_d, 146472e1c782ba1e4226da37af4722af608de9f39408Greg Clayton MSA128DOpnd>; 146568ca823ad1ab94805bcee03f3ad0b649d94e5a09Greg Clayton 146672e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass BINSL_B_DESC : MSA_3R_DESC_BASE<"binsl.b", int_mips_binsl_b, MSA128BOpnd>; 146772e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass BINSL_H_DESC : MSA_3R_DESC_BASE<"binsl.h", int_mips_binsl_h, MSA128HOpnd>; 146872e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass BINSL_W_DESC : MSA_3R_DESC_BASE<"binsl.w", int_mips_binsl_w, MSA128WOpnd>; 146972e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass BINSL_D_DESC : MSA_3R_DESC_BASE<"binsl.d", int_mips_binsl_d, MSA128DOpnd>; 147072e1c782ba1e4226da37af4722af608de9f39408Greg Clayton 147172e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass BINSLI_B_DESC : MSA_BIT_B_DESC_BASE<"binsli.b", int_mips_binsli_b, 147224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>; 147372e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass BINSLI_H_DESC : MSA_BIT_H_DESC_BASE<"binsli.h", int_mips_binsli_h, 147458e844b3561848e73e69d6d98746d4851e78306eGreg Clayton MSA128HOpnd>; 147572e1c782ba1e4226da37af4722af608de9f39408Greg Claytonclass BINSLI_W_DESC : MSA_BIT_W_DESC_BASE<"binsli.w", int_mips_binsli_w, 147672e1c782ba1e4226da37af4722af608de9f39408Greg Clayton MSA128WOpnd>; 147724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BINSLI_D_DESC : MSA_BIT_D_DESC_BASE<"binsli.d", int_mips_binsli_d, 147824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>; 147924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 148024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BINSR_B_DESC : MSA_3R_DESC_BASE<"binsr.b", int_mips_binsr_b, MSA128BOpnd>; 148124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BINSR_H_DESC : MSA_3R_DESC_BASE<"binsr.h", int_mips_binsr_h, MSA128HOpnd>; 148224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BINSR_W_DESC : MSA_3R_DESC_BASE<"binsr.w", int_mips_binsr_w, MSA128WOpnd>; 148324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BINSR_D_DESC : MSA_3R_DESC_BASE<"binsr.d", int_mips_binsr_d, MSA128DOpnd>; 14841c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Clayton 14851c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Claytonclass BINSRI_B_DESC : MSA_BIT_B_DESC_BASE<"binsri.b", int_mips_binsri_b, 14861c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Clayton MSA128BOpnd>; 14871c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Claytonclass BINSRI_H_DESC : MSA_BIT_H_DESC_BASE<"binsri.h", int_mips_binsri_h, 14881c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Clayton MSA128HOpnd>; 148924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BINSRI_W_DESC : MSA_BIT_W_DESC_BASE<"binsri.w", int_mips_binsri_w, 149024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 1491952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Claytonclass BINSRI_D_DESC : MSA_BIT_D_DESC_BASE<"binsri.d", int_mips_binsri_d, 14921c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Clayton MSA128DOpnd>; 14935f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Malea 14941c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Claytonclass BMNZ_V_DESC : MSA_VEC_DESC_BASE<"bmnz.v", int_mips_bmnz_v, MSA128BOpnd>; 14951c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Clayton 14961c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Claytonclass BMNZI_B_DESC : MSA_I8_X_DESC_BASE<"bmnzi.b", int_mips_bmnzi_b, 14971c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Clayton MSA128BOpnd>; 14981c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Clayton 14991c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Claytonclass BMZ_V_DESC : MSA_VEC_DESC_BASE<"bmz.v", int_mips_bmz_v, MSA128BOpnd>; 15001c4642c6ab741d85c98d4288cf922c9a2ef77007Greg Clayton 150124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BMZI_B_DESC : MSA_I8_X_DESC_BASE<"bmzi.b", int_mips_bmzi_b, MSA128BOpnd>; 150263094e0bb161580564954dee512955c1c79d3476Greg Clayton 150324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNEG_B_DESC : MSA_3R_DESC_BASE<"bneg.b", int_mips_bneg_b, MSA128BOpnd>; 150424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNEG_H_DESC : MSA_3R_DESC_BASE<"bneg.h", int_mips_bneg_h, MSA128HOpnd>; 150524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNEG_W_DESC : MSA_3R_DESC_BASE<"bneg.w", int_mips_bneg_w, MSA128WOpnd>; 150624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNEG_D_DESC : MSA_3R_DESC_BASE<"bneg.d", int_mips_bneg_d, MSA128DOpnd>; 150724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 150824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNEGI_B_DESC : MSA_BIT_B_DESC_BASE<"bnegi.b", int_mips_bnegi_b, 150924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>; 151024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNEGI_H_DESC : MSA_BIT_H_DESC_BASE<"bnegi.h", int_mips_bnegi_h, 151124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 151224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNEGI_W_DESC : MSA_BIT_W_DESC_BASE<"bnegi.w", int_mips_bnegi_w, 151324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 151424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNEGI_D_DESC : MSA_BIT_D_DESC_BASE<"bnegi.d", int_mips_bnegi_d, 151524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>; 151624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 151724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNZ_B_DESC : MSA_CBRANCH_DESC_BASE<"bnz.b", MSA128BOpnd>; 151824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNZ_H_DESC : MSA_CBRANCH_DESC_BASE<"bnz.h", MSA128HOpnd>; 151924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNZ_W_DESC : MSA_CBRANCH_DESC_BASE<"bnz.w", MSA128WOpnd>; 152024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BNZ_D_DESC : MSA_CBRANCH_DESC_BASE<"bnz.d", MSA128DOpnd>; 152137f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Clayton 152237f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Claytonclass BNZ_V_DESC : MSA_CBRANCH_DESC_BASE<"bnz.v", MSA128BOpnd>; 152337f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Clayton 152437f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Claytonclass BSEL_V_DESC { 152537f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Clayton dag OutOperandList = (outs MSA128BOpnd:$wd); 152637f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Clayton dag InOperandList = (ins MSA128BOpnd:$wd_in, MSA128BOpnd:$ws, 1527202060806d75f812b56a3cfa70d85fff536e5c2fGreg Clayton MSA128BOpnd:$wt); 1528202060806d75f812b56a3cfa70d85fff536e5c2fGreg Clayton string AsmString = "bsel.v\t$wd, $ws, $wt"; 1529202060806d75f812b56a3cfa70d85fff536e5c2fGreg Clayton list<dag> Pattern = [(set MSA128BOpnd:$wd, 1530202060806d75f812b56a3cfa70d85fff536e5c2fGreg Clayton (vselect MSA128BOpnd:$wd_in, MSA128BOpnd:$ws, 1531ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton MSA128BOpnd:$wt))]; 1532ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton InstrItinClass Itinerary = NoItinerary; 1533ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton string Constraints = "$wd = $wd_in"; 15344e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylor} 15354e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylor 1536202060806d75f812b56a3cfa70d85fff536e5c2fGreg Claytonclass BSELI_B_DESC { 1537202060806d75f812b56a3cfa70d85fff536e5c2fGreg Clayton dag OutOperandList = (outs MSA128BOpnd:$wd); 1538ae932359b80098532f3c3766fa9e6527352fbb67Greg Clayton dag InOperandList = (ins MSA128BOpnd:$wd_in, MSA128BOpnd:$ws, 15394e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylor vsplat_uimm8:$u8); 1540ae932359b80098532f3c3766fa9e6527352fbb67Greg Clayton string AsmString = "bseli.b\t$wd, $ws, $u8"; 1541eb17530206e3f501476a32c5d28c8dc36bac419aJim Ingham list<dag> Pattern = [(set MSA128BOpnd:$wd, (vselect MSA128BOpnd:$wd_in, 1542eb17530206e3f501476a32c5d28c8dc36bac419aJim Ingham MSA128BOpnd:$ws, 1543eb17530206e3f501476a32c5d28c8dc36bac419aJim Ingham vsplati8_uimm8:$u8))]; 1544eb17530206e3f501476a32c5d28c8dc36bac419aJim Ingham InstrItinClass Itinerary = NoItinerary; 1545eb17530206e3f501476a32c5d28c8dc36bac419aJim Ingham string Constraints = "$wd = $wd_in"; 1546eb17530206e3f501476a32c5d28c8dc36bac419aJim Ingham} 1547eb17530206e3f501476a32c5d28c8dc36bac419aJim Ingham 15489acf3699d2bea583b45c762f4cd82b2a4af6131bGreg Claytonclass BSET_B_DESC : MSA_3R_DESC_BASE<"bset.b", int_mips_bset_b, MSA128BOpnd>; 15499acf3699d2bea583b45c762f4cd82b2a4af6131bGreg Claytonclass BSET_H_DESC : MSA_3R_DESC_BASE<"bset.h", int_mips_bset_h, MSA128HOpnd>; 15509acf3699d2bea583b45c762f4cd82b2a4af6131bGreg Claytonclass BSET_W_DESC : MSA_3R_DESC_BASE<"bset.w", int_mips_bset_w, MSA128WOpnd>; 15514e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylorclass BSET_D_DESC : MSA_3R_DESC_BASE<"bset.d", int_mips_bset_d, MSA128DOpnd>; 15529acf3699d2bea583b45c762f4cd82b2a4af6131bGreg Clayton 15534e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylorclass BSETI_B_DESC : MSA_BIT_B_DESC_BASE<"bseti.b", int_mips_bseti_b, 15549acf3699d2bea583b45c762f4cd82b2a4af6131bGreg Clayton MSA128BOpnd>; 15559acf3699d2bea583b45c762f4cd82b2a4af6131bGreg Claytonclass BSETI_H_DESC : MSA_BIT_H_DESC_BASE<"bseti.h", int_mips_bseti_h, 15564e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylor MSA128HOpnd>; 15574e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylorclass BSETI_W_DESC : MSA_BIT_W_DESC_BASE<"bseti.w", int_mips_bseti_w, 15584e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylor MSA128WOpnd>; 15594e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylorclass BSETI_D_DESC : MSA_BIT_D_DESC_BASE<"bseti.d", int_mips_bseti_d, 15604e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylor MSA128DOpnd>; 15614e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylor 15624e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylorclass BZ_B_DESC : MSA_CBRANCH_DESC_BASE<"bz.b", MSA128BOpnd>; 15634e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylorclass BZ_H_DESC : MSA_CBRANCH_DESC_BASE<"bz.h", MSA128HOpnd>; 15649acf3699d2bea583b45c762f4cd82b2a4af6131bGreg Claytonclass BZ_W_DESC : MSA_CBRANCH_DESC_BASE<"bz.w", MSA128WOpnd>; 1565eb17530206e3f501476a32c5d28c8dc36bac419aJim Inghamclass BZ_D_DESC : MSA_CBRANCH_DESC_BASE<"bz.d", MSA128DOpnd>; 156629f30d0f5ccbb6c1f95de7199008ac2448097609Jim Ingham 156729f30d0f5ccbb6c1f95de7199008ac2448097609Jim Inghamclass BZ_V_DESC : MSA_CBRANCH_DESC_BASE<"bz.v", MSA128BOpnd>; 15684e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylor 15694e75e3533bddc7cf7264c6c7f7b4d812d4466e96Andrew Kaylorclass CEQ_B_DESC : MSA_3R_DESC_BASE<"ceq.b", vseteq_v16i8, MSA128BOpnd>, 1570ae932359b80098532f3c3766fa9e6527352fbb67Greg Clayton IsCommutable; 1571202060806d75f812b56a3cfa70d85fff536e5c2fGreg Claytonclass CEQ_H_DESC : MSA_3R_DESC_BASE<"ceq.h", vseteq_v8i16, MSA128HOpnd>, 157237f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Clayton IsCommutable; 157337f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Claytonclass CEQ_W_DESC : MSA_3R_DESC_BASE<"ceq.w", vseteq_v4i32, MSA128WOpnd>, 157437f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Clayton IsCommutable; 157552ebc0aab1fdecb634801deceeddd71a14c2148cGreg Claytonclass CEQ_D_DESC : MSA_3R_DESC_BASE<"ceq.d", vseteq_v2i64, MSA128DOpnd>, 157652ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton IsCommutable; 157752ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton 157852ebc0aab1fdecb634801deceeddd71a14c2148cGreg Claytonclass CEQI_B_DESC : MSA_I5_DESC_BASE<"ceqi.b", vseteq_v16i8, vsplati8_simm5, 157952ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton MSA128BOpnd>; 158052ebc0aab1fdecb634801deceeddd71a14c2148cGreg Claytonclass CEQI_H_DESC : MSA_I5_DESC_BASE<"ceqi.h", vseteq_v8i16, vsplati16_simm5, 158152ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton MSA128HOpnd>; 158252ebc0aab1fdecb634801deceeddd71a14c2148cGreg Claytonclass CEQI_W_DESC : MSA_I5_DESC_BASE<"ceqi.w", vseteq_v4i32, vsplati32_simm5, 158352ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton MSA128WOpnd>; 1584ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CEQI_D_DESC : MSA_I5_DESC_BASE<"ceqi.d", vseteq_v2i64, vsplati64_simm5, 1585ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong MSA128DOpnd>; 1586ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong 1587ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CFCMSA_DESC { 1588ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong dag OutOperandList = (outs GPR32Opnd:$rd); 1589ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong dag InOperandList = (ins MSA128CROpnd:$cs); 1590ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong string AsmString = "cfcmsa\t$rd, $cs"; 1591ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong InstrItinClass Itinerary = NoItinerary; 1592ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong bit hasSideEffects = 1; 1593ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong} 1594ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong 1595ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLE_S_B_DESC : MSA_3R_DESC_BASE<"cle_s.b", vsetle_v16i8, MSA128BOpnd>; 1596ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLE_S_H_DESC : MSA_3R_DESC_BASE<"cle_s.h", vsetle_v8i16, MSA128HOpnd>; 1597ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLE_S_W_DESC : MSA_3R_DESC_BASE<"cle_s.w", vsetle_v4i32, MSA128WOpnd>; 1598ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLE_S_D_DESC : MSA_3R_DESC_BASE<"cle_s.d", vsetle_v2i64, MSA128DOpnd>; 1599ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong 1600ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLE_U_B_DESC : MSA_3R_DESC_BASE<"cle_u.b", vsetule_v16i8, MSA128BOpnd>; 1601ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLE_U_H_DESC : MSA_3R_DESC_BASE<"cle_u.h", vsetule_v8i16, MSA128HOpnd>; 1602ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLE_U_W_DESC : MSA_3R_DESC_BASE<"cle_u.w", vsetule_v4i32, MSA128WOpnd>; 1603ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLE_U_D_DESC : MSA_3R_DESC_BASE<"cle_u.d", vsetule_v2i64, MSA128DOpnd>; 1604ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong 1605ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLEI_S_B_DESC : MSA_I5_DESC_BASE<"clei_s.b", vsetle_v16i8, 1606ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong vsplati8_simm5, MSA128BOpnd>; 1607ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLEI_S_H_DESC : MSA_I5_DESC_BASE<"clei_s.h", vsetle_v8i16, 1608ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong vsplati16_simm5, MSA128HOpnd>; 1609ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLEI_S_W_DESC : MSA_I5_DESC_BASE<"clei_s.w", vsetle_v4i32, 1610ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong vsplati32_simm5, MSA128WOpnd>; 1611ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLEI_S_D_DESC : MSA_I5_DESC_BASE<"clei_s.d", vsetle_v2i64, 1612ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong vsplati64_simm5, MSA128DOpnd>; 1613ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong 1614ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLEI_U_B_DESC : MSA_I5_DESC_BASE<"clei_u.b", vsetule_v16i8, 1615ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong vsplati8_uimm5, MSA128BOpnd>; 1616ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLEI_U_H_DESC : MSA_I5_DESC_BASE<"clei_u.h", vsetule_v8i16, 1617ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong vsplati16_uimm5, MSA128HOpnd>; 1618ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLEI_U_W_DESC : MSA_I5_DESC_BASE<"clei_u.w", vsetule_v4i32, 1619ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong vsplati32_uimm5, MSA128WOpnd>; 1620ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ongclass CLEI_U_D_DESC : MSA_I5_DESC_BASE<"clei_u.d", vsetule_v2i64, 1621ccd5c4ee85d1592f9ae3da02c85f5647ca02fab2Han Ming Ong vsplati64_uimm5, MSA128DOpnd>; 162224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 162324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass CLT_S_B_DESC : MSA_3R_DESC_BASE<"clt_s.b", vsetlt_v16i8, MSA128BOpnd>; 162424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass CLT_S_H_DESC : MSA_3R_DESC_BASE<"clt_s.h", vsetlt_v8i16, MSA128HOpnd>; 162524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass CLT_S_W_DESC : MSA_3R_DESC_BASE<"clt_s.w", vsetlt_v4i32, MSA128WOpnd>; 162624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass CLT_S_D_DESC : MSA_3R_DESC_BASE<"clt_s.d", vsetlt_v2i64, MSA128DOpnd>; 162724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 162824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass CLT_U_B_DESC : MSA_3R_DESC_BASE<"clt_u.b", vsetult_v16i8, MSA128BOpnd>; 162924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass CLT_U_H_DESC : MSA_3R_DESC_BASE<"clt_u.h", vsetult_v8i16, MSA128HOpnd>; 16307c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Inghamclass CLT_U_W_DESC : MSA_3R_DESC_BASE<"clt_u.w", vsetult_v4i32, MSA128WOpnd>; 163124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass CLT_U_D_DESC : MSA_3R_DESC_BASE<"clt_u.d", vsetult_v2i64, MSA128DOpnd>; 1632952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton 163324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass CLTI_S_B_DESC : MSA_I5_DESC_BASE<"clti_s.b", vsetlt_v16i8, 16347c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Ingham vsplati8_simm5, MSA128BOpnd>; 1635a894fe78bc15344a0025c1154e414c554ab31dd9Greg Claytonclass CLTI_S_H_DESC : MSA_I5_DESC_BASE<"clti_s.h", vsetlt_v8i16, 163624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner vsplati16_simm5, MSA128HOpnd>; 1637027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Inghamclass CLTI_S_W_DESC : MSA_I5_DESC_BASE<"clti_s.w", vsetlt_v4i32, 1638027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Ingham vsplati32_simm5, MSA128WOpnd>; 1639027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Inghamclass CLTI_S_D_DESC : MSA_I5_DESC_BASE<"clti_s.d", vsetlt_v2i64, 1640027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Ingham vsplati64_simm5, MSA128DOpnd>; 1641a894fe78bc15344a0025c1154e414c554ab31dd9Greg Clayton 1642a894fe78bc15344a0025c1154e414c554ab31dd9Greg Claytonclass CLTI_U_B_DESC : MSA_I5_DESC_BASE<"clti_u.b", vsetult_v16i8, 1643a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callanan vsplati8_uimm5, MSA128BOpnd>; 1644a894fe78bc15344a0025c1154e414c554ab31dd9Greg Claytonclass CLTI_U_H_DESC : MSA_I5_DESC_BASE<"clti_u.h", vsetult_v8i16, 1645a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callanan vsplati16_uimm5, MSA128HOpnd>; 1646a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callananclass CLTI_U_W_DESC : MSA_I5_DESC_BASE<"clti_u.w", vsetult_v4i32, 1647cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste vsplati32_uimm5, MSA128WOpnd>; 1648a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callananclass CLTI_U_D_DESC : MSA_I5_DESC_BASE<"clti_u.d", vsetult_v2i64, 1649a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callanan vsplati64_uimm5, MSA128DOpnd>; 1650a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callanan 1651a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callananclass COPY_S_B_DESC : MSA_COPY_DESC_BASE<"copy_s.b", vextract_sext_i8, v16i8, 1652a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callanan GPR32Opnd, MSA128BOpnd>; 16537c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Inghamclass COPY_S_H_DESC : MSA_COPY_DESC_BASE<"copy_s.h", vextract_sext_i16, v8i16, 1654a894fe78bc15344a0025c1154e414c554ab31dd9Greg Clayton GPR32Opnd, MSA128HOpnd>; 16557c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Inghamclass COPY_S_W_DESC : MSA_COPY_DESC_BASE<"copy_s.w", vextract_sext_i32, v4i32, 1656a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callanan GPR32Opnd, MSA128WOpnd>; 1657a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callanan 1658a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callananclass COPY_U_B_DESC : MSA_COPY_DESC_BASE<"copy_u.b", vextract_zext_i8, v16i8, 1659cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste GPR32Opnd, MSA128BOpnd>; 1660a3772860a8d4ba6472e8a3c77c85b925ca454556Sean Callananclass COPY_U_H_DESC : MSA_COPY_DESC_BASE<"copy_u.h", vextract_zext_i16, v8i16, 1661a894fe78bc15344a0025c1154e414c554ab31dd9Greg Clayton GPR32Opnd, MSA128HOpnd>; 1662a894fe78bc15344a0025c1154e414c554ab31dd9Greg Claytonclass COPY_U_W_DESC : MSA_COPY_DESC_BASE<"copy_u.w", vextract_zext_i32, v4i32, 1663a894fe78bc15344a0025c1154e414c554ab31dd9Greg Clayton GPR32Opnd, MSA128WOpnd>; 166424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 166524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass COPY_FW_PSEUDO_DESC : MSA_COPY_PSEUDO_BASE<vector_extract, v4f32, FGR32, 1666027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Ingham MSA128W>; 1667027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Inghamclass COPY_FD_PSEUDO_DESC : MSA_COPY_PSEUDO_BASE<vector_extract, v2f64, FGR64, 1668027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Ingham MSA128D>; 1669952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton 1670027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Inghamclass CTCMSA_DESC { 1671027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Ingham dag OutOperandList = (outs); 1672cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste dag InOperandList = (ins MSA128CROpnd:$cd, GPR32Opnd:$rs); 1673027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Ingham string AsmString = "ctcmsa\t$cd, $rs"; 1674027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Ingham InstrItinClass Itinerary = NoItinerary; 1675027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Ingham bit hasSideEffects = 1; 1676cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste} 1677027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Ingham 1678027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Inghamclass DIV_S_B_DESC : MSA_3R_DESC_BASE<"div_s.b", sdiv, MSA128BOpnd>; 1679027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Inghamclass DIV_S_H_DESC : MSA_3R_DESC_BASE<"div_s.h", sdiv, MSA128HOpnd>; 1680027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Inghamclass DIV_S_W_DESC : MSA_3R_DESC_BASE<"div_s.w", sdiv, MSA128WOpnd>; 1681027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Inghamclass DIV_S_D_DESC : MSA_3R_DESC_BASE<"div_s.d", sdiv, MSA128DOpnd>; 168224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 168324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DIV_U_B_DESC : MSA_3R_DESC_BASE<"div_u.b", udiv, MSA128BOpnd>; 168424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DIV_U_H_DESC : MSA_3R_DESC_BASE<"div_u.h", udiv, MSA128HOpnd>; 168524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DIV_U_W_DESC : MSA_3R_DESC_BASE<"div_u.w", udiv, MSA128WOpnd>; 168624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DIV_U_D_DESC : MSA_3R_DESC_BASE<"div_u.d", udiv, MSA128DOpnd>; 168724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 168824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DOTP_S_H_DESC : MSA_3R_DESC_BASE<"dotp_s.h", int_mips_dotp_s_h, 168924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd, MSA128BOpnd, MSA128BOpnd>, 169024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 1691952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Claytonclass DOTP_S_W_DESC : MSA_3R_DESC_BASE<"dotp_s.w", int_mips_dotp_s_w, 169224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd, MSA128HOpnd, MSA128HOpnd>, 169324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 169424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DOTP_S_D_DESC : MSA_3R_DESC_BASE<"dotp_s.d", int_mips_dotp_s_d, 169524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd, MSA128WOpnd, MSA128WOpnd>, 169624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 16971f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylor 169824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DOTP_U_H_DESC : MSA_3R_DESC_BASE<"dotp_u.h", int_mips_dotp_u_h, 169924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd, MSA128BOpnd, MSA128BOpnd>, 170024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 170124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DOTP_U_W_DESC : MSA_3R_DESC_BASE<"dotp_u.w", int_mips_dotp_u_w, 17028bf4e92ff9b78a973a3feae2231c972fa156ba9aEd Maste MSA128WOpnd, MSA128HOpnd, MSA128HOpnd>, 17035fbfb910d2aa7b0c011f077390880235ee808685Greg Clayton IsCommutable; 17045fbfb910d2aa7b0c011f077390880235ee808685Greg Claytonclass DOTP_U_D_DESC : MSA_3R_DESC_BASE<"dotp_u.d", int_mips_dotp_u_d, 17055fbfb910d2aa7b0c011f077390880235ee808685Greg Clayton MSA128DOpnd, MSA128WOpnd, MSA128WOpnd>, 17065fbfb910d2aa7b0c011f077390880235ee808685Greg Clayton IsCommutable; 17075fbfb910d2aa7b0c011f077390880235ee808685Greg Clayton 1708cf88b95d435873bd312e716da5701cf3882c5da4Ed Masteclass DPADD_S_H_DESC : MSA_3R_4R_DESC_BASE<"dpadd_s.h", int_mips_dpadd_s_h, 17095fbfb910d2aa7b0c011f077390880235ee808685Greg Clayton MSA128HOpnd, MSA128BOpnd, 1710cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste MSA128BOpnd>, IsCommutable; 17115fbfb910d2aa7b0c011f077390880235ee808685Greg Claytonclass DPADD_S_W_DESC : MSA_3R_4R_DESC_BASE<"dpadd_s.w", int_mips_dpadd_s_w, 17123bd2ebd670677dae45010bf53084ff85da7c6a5eAndrew Kaylor MSA128WOpnd, MSA128HOpnd, 171324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>, IsCommutable; 171424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DPADD_S_D_DESC : MSA_3R_4R_DESC_BASE<"dpadd_s.d", int_mips_dpadd_s_d, 171524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd, MSA128WOpnd, 1716202060806d75f812b56a3cfa70d85fff536e5c2fGreg Clayton MSA128WOpnd>, IsCommutable; 171724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 17181f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylorclass DPADD_U_H_DESC : MSA_3R_4R_DESC_BASE<"dpadd_u.h", int_mips_dpadd_u_h, 17191f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylor MSA128HOpnd, MSA128BOpnd, 17201f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylor MSA128BOpnd>, IsCommutable; 17211f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylorclass DPADD_U_W_DESC : MSA_3R_4R_DESC_BASE<"dpadd_u.w", int_mips_dpadd_u_w, 17221f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylor MSA128WOpnd, MSA128HOpnd, 17231f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylor MSA128HOpnd>, IsCommutable; 17241f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylorclass DPADD_U_D_DESC : MSA_3R_4R_DESC_BASE<"dpadd_u.d", int_mips_dpadd_u_d, 17251f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylor MSA128DOpnd, MSA128WOpnd, 17261f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylor MSA128WOpnd>, IsCommutable; 17271f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylor 17281f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylorclass DPSUB_S_H_DESC : MSA_3R_4R_DESC_BASE<"dpsub_s.h", int_mips_dpsub_s_h, 17291f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylor MSA128HOpnd, MSA128BOpnd, 17301f85fa8c8611a175819009dd83e724b6788a6587Andrew Kaylor MSA128BOpnd>; 173121f37ad875d4f50d1b4b3d307e120f6d27103730Jim Inghamclass DPSUB_S_W_DESC : MSA_3R_4R_DESC_BASE<"dpsub_s.w", int_mips_dpsub_s_w, 1732fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Clayton MSA128WOpnd, MSA128HOpnd, 173324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 173421f37ad875d4f50d1b4b3d307e120f6d27103730Jim Inghamclass DPSUB_S_D_DESC : MSA_3R_4R_DESC_BASE<"dpsub_s.d", int_mips_dpsub_s_d, 173524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd, MSA128WOpnd, 173624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 1737843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton 1738843327854a86a1d44f03b838767575ccba8bb77aGreg Claytonclass DPSUB_U_H_DESC : MSA_3R_4R_DESC_BASE<"dpsub_u.h", int_mips_dpsub_u_h, 1739843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton MSA128HOpnd, MSA128BOpnd, 1740843327854a86a1d44f03b838767575ccba8bb77aGreg Clayton MSA128BOpnd>; 174124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DPSUB_U_W_DESC : MSA_3R_4R_DESC_BASE<"dpsub_u.w", int_mips_dpsub_u_w, 174224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd, MSA128HOpnd, 174324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 174424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass DPSUB_U_D_DESC : MSA_3R_4R_DESC_BASE<"dpsub_u.d", int_mips_dpsub_u_d, 17457e5fa7fc1f8efd24c078e063b2c4b5e13ba5be20Jason Molenda MSA128DOpnd, MSA128WOpnd, 174624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 174724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 174824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass FADD_W_DESC : MSA_3RF_DESC_BASE<"fadd.w", fadd, MSA128WOpnd>, 17490296fe73a7cb1482226b1303a795ede00e12d677Jim Ingham IsCommutable; 17500296fe73a7cb1482226b1303a795ede00e12d677Jim Inghamclass FADD_D_DESC : MSA_3RF_DESC_BASE<"fadd.d", fadd, MSA128DOpnd>, 17510296fe73a7cb1482226b1303a795ede00e12d677Jim Ingham IsCommutable; 17520296fe73a7cb1482226b1303a795ede00e12d677Jim Ingham 17530296fe73a7cb1482226b1303a795ede00e12d677Jim Inghamclass FCAF_W_DESC : MSA_3RF_DESC_BASE<"fcaf.w", int_mips_fcaf_w, MSA128WOpnd>, 17540296fe73a7cb1482226b1303a795ede00e12d677Jim Ingham IsCommutable; 175524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass FCAF_D_DESC : MSA_3RF_DESC_BASE<"fcaf.d", int_mips_fcaf_d, MSA128DOpnd>, 175624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 175724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 175824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass FCEQ_W_DESC : MSA_3RF_DESC_BASE<"fceq.w", vfsetoeq_v4f32, MSA128WOpnd>, 175924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsCommutable; 176024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass FCEQ_D_DESC : MSA_3RF_DESC_BASE<"fceq.d", vfsetoeq_v2f64, MSA128DOpnd>, 17610baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton IsCommutable; 17620baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 17630baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCLASS_W_DESC : MSA_2RF_DESC_BASE<"fclass.w", int_mips_fclass_w, 17640baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128WOpnd>; 17650baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCLASS_D_DESC : MSA_2RF_DESC_BASE<"fclass.d", int_mips_fclass_d, 17660baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128DOpnd>; 17670baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 17680baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCLE_W_DESC : MSA_3RF_DESC_BASE<"fcle.w", vfsetole_v4f32, MSA128WOpnd>; 17690baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCLE_D_DESC : MSA_3RF_DESC_BASE<"fcle.d", vfsetole_v2f64, MSA128DOpnd>; 17700baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 17710baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCLT_W_DESC : MSA_3RF_DESC_BASE<"fclt.w", vfsetolt_v4f32, MSA128WOpnd>; 177277d40710a275d2b7e68fe005391f77801b9cd480Greg Claytonclass FCLT_D_DESC : MSA_3RF_DESC_BASE<"fclt.d", vfsetolt_v2f64, MSA128DOpnd>; 177377d40710a275d2b7e68fe005391f77801b9cd480Greg Clayton 177477d40710a275d2b7e68fe005391f77801b9cd480Greg Claytonclass FCNE_W_DESC : MSA_3RF_DESC_BASE<"fcne.w", vfsetone_v4f32, MSA128WOpnd>, 17750baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton IsCommutable; 17760baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCNE_D_DESC : MSA_3RF_DESC_BASE<"fcne.d", vfsetone_v2f64, MSA128DOpnd>, 17770baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton IsCommutable; 17780baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 17790baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCOR_W_DESC : MSA_3RF_DESC_BASE<"fcor.w", vfsetord_v4f32, MSA128WOpnd>, 17800baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton IsCommutable; 17810baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCOR_D_DESC : MSA_3RF_DESC_BASE<"fcor.d", vfsetord_v2f64, MSA128DOpnd>, 17820baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton IsCommutable; 17830baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 17840baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCUEQ_W_DESC : MSA_3RF_DESC_BASE<"fcueq.w", vfsetueq_v4f32, MSA128WOpnd>, 17850baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton IsCommutable; 17860baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCUEQ_D_DESC : MSA_3RF_DESC_BASE<"fcueq.d", vfsetueq_v2f64, MSA128DOpnd>, 17870baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton IsCommutable; 17880baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 17890baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCULE_W_DESC : MSA_3RF_DESC_BASE<"fcule.w", vfsetule_v4f32, MSA128WOpnd>, 17900baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton IsCommutable; 17910baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCULE_D_DESC : MSA_3RF_DESC_BASE<"fcule.d", vfsetule_v2f64, MSA128DOpnd>, 17920baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton IsCommutable; 17930baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 17940baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCULT_W_DESC : MSA_3RF_DESC_BASE<"fcult.w", vfsetult_v4f32, MSA128WOpnd>, 1795b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham IsCommutable; 1796b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamclass FCULT_D_DESC : MSA_3RF_DESC_BASE<"fcult.d", vfsetult_v2f64, MSA128DOpnd>, 17970baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton IsCommutable; 17980baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 17990baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FCUN_W_DESC : MSA_3RF_DESC_BASE<"fcun.w", vfsetun_v4f32, MSA128WOpnd>, 1800360f53f3c216ee4fb433da0a367168785328a856Jim Ingham IsCommutable; 180134507e41794909465d168af4048ebd07ee7819e8Greg Claytonclass FCUN_D_DESC : MSA_3RF_DESC_BASE<"fcun.d", vfsetun_v2f64, MSA128DOpnd>, 180234507e41794909465d168af4048ebd07ee7819e8Greg Clayton IsCommutable; 180334507e41794909465d168af4048ebd07ee7819e8Greg Clayton 180434507e41794909465d168af4048ebd07ee7819e8Greg Claytonclass FCUNE_W_DESC : MSA_3RF_DESC_BASE<"fcune.w", vfsetune_v4f32, MSA128WOpnd>, 180534507e41794909465d168af4048ebd07ee7819e8Greg Clayton IsCommutable; 1806b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamclass FCUNE_D_DESC : MSA_3RF_DESC_BASE<"fcune.d", vfsetune_v2f64, MSA128DOpnd>, 180734507e41794909465d168af4048ebd07ee7819e8Greg Clayton IsCommutable; 180834507e41794909465d168af4048ebd07ee7819e8Greg Clayton 180934507e41794909465d168af4048ebd07ee7819e8Greg Claytonclass FDIV_W_DESC : MSA_3RF_DESC_BASE<"fdiv.w", fdiv, MSA128WOpnd>; 181034507e41794909465d168af4048ebd07ee7819e8Greg Claytonclass FDIV_D_DESC : MSA_3RF_DESC_BASE<"fdiv.d", fdiv, MSA128DOpnd>; 181134507e41794909465d168af4048ebd07ee7819e8Greg Clayton 1812b14ec34165772877c8242f5b15acb116b0d9a9b5Johnny Chenclass FEXDO_H_DESC : MSA_3RF_DESC_BASE<"fexdo.h", int_mips_fexdo_h, 1813b14ec34165772877c8242f5b15acb116b0d9a9b5Johnny Chen MSA128HOpnd, MSA128WOpnd, MSA128WOpnd>; 18140baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FEXDO_W_DESC : MSA_3RF_DESC_BASE<"fexdo.w", int_mips_fexdo_w, 18150baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128WOpnd, MSA128DOpnd, MSA128DOpnd>; 1816fa3a16a2ea380ef38388ebe323817bd1b32c20cdJim Ingham 18170baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton// The fexp2.df instruction multiplies the first operand by 2 to the power of 18180baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton// the second operand. We therefore need a pseudo-insn in order to invent the 18190baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton// 1.0 when we only need to match ISD::FEXP2. 18200baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FEXP2_W_DESC : MSA_3RF_DESC_BASE<"fexp2.w", mul_fexp2, MSA128WOpnd>; 18210baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FEXP2_D_DESC : MSA_3RF_DESC_BASE<"fexp2.d", mul_fexp2, MSA128DOpnd>; 18220baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonlet usesCustomInserter = 1 in { 18230baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton class FEXP2_W_1_PSEUDO_DESC : 18240baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MipsPseudo<(outs MSA128W:$wd), (ins MSA128W:$ws), 18250baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton [(set MSA128W:$wd, (fexp2 MSA128W:$ws))]>; 18260baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton class FEXP2_D_1_PSEUDO_DESC : 18270baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MipsPseudo<(outs MSA128D:$wd), (ins MSA128D:$ws), 18280baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton [(set MSA128D:$wd, (fexp2 MSA128D:$ws))]>; 18290baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton} 183077d40710a275d2b7e68fe005391f77801b9cd480Greg Clayton 183177d40710a275d2b7e68fe005391f77801b9cd480Greg Claytonclass FEXUPL_W_DESC : MSA_2RF_DESC_BASE<"fexupl.w", int_mips_fexupl_w, 18320baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128WOpnd, MSA128HOpnd>; 18330baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FEXUPL_D_DESC : MSA_2RF_DESC_BASE<"fexupl.d", int_mips_fexupl_d, 18340baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128DOpnd, MSA128WOpnd>; 18350baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18360baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FEXUPR_W_DESC : MSA_2RF_DESC_BASE<"fexupr.w", int_mips_fexupr_w, 18370baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128WOpnd, MSA128HOpnd>; 18380baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FEXUPR_D_DESC : MSA_2RF_DESC_BASE<"fexupr.d", int_mips_fexupr_d, 18390baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128DOpnd, MSA128WOpnd>; 18400baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18410baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FFINT_S_W_DESC : MSA_2RF_DESC_BASE<"ffint_s.w", sint_to_fp, MSA128WOpnd>; 18420baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FFINT_S_D_DESC : MSA_2RF_DESC_BASE<"ffint_s.d", sint_to_fp, MSA128DOpnd>; 18430baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18440baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FFINT_U_W_DESC : MSA_2RF_DESC_BASE<"ffint_u.w", uint_to_fp, MSA128WOpnd>; 18450baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FFINT_U_D_DESC : MSA_2RF_DESC_BASE<"ffint_u.d", uint_to_fp, MSA128DOpnd>; 18460baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18470baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FFQL_W_DESC : MSA_2RF_DESC_BASE<"ffql.w", int_mips_ffql_w, 18480baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128WOpnd, MSA128HOpnd>; 18490baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FFQL_D_DESC : MSA_2RF_DESC_BASE<"ffql.d", int_mips_ffql_d, 18500baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128DOpnd, MSA128WOpnd>; 18510baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18520baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FFQR_W_DESC : MSA_2RF_DESC_BASE<"ffqr.w", int_mips_ffqr_w, 18530baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128WOpnd, MSA128HOpnd>; 18540baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FFQR_D_DESC : MSA_2RF_DESC_BASE<"ffqr.d", int_mips_ffqr_d, 18550baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128DOpnd, MSA128WOpnd>; 18560baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18570baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FILL_B_DESC : MSA_2R_FILL_DESC_BASE<"fill.b", v16i8, vsplati8, 18580baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128BOpnd, GPR32Opnd>; 18590baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FILL_H_DESC : MSA_2R_FILL_DESC_BASE<"fill.h", v8i16, vsplati16, 18600baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128HOpnd, GPR32Opnd>; 18610baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FILL_W_DESC : MSA_2R_FILL_DESC_BASE<"fill.w", v4i32, vsplati32, 18620baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128WOpnd, GPR32Opnd>; 18630baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18640baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FILL_FW_PSEUDO_DESC : MSA_2R_FILL_PSEUDO_BASE<v4f32, vsplatf32, MSA128W, 18650baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton FGR32>; 18660baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FILL_FD_PSEUDO_DESC : MSA_2R_FILL_PSEUDO_BASE<v2f64, vsplatf64, MSA128D, 18670baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton FGR64>; 18680baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18690baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FLOG2_W_DESC : MSA_2RF_DESC_BASE<"flog2.w", flog2, MSA128WOpnd>; 18700baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FLOG2_D_DESC : MSA_2RF_DESC_BASE<"flog2.d", flog2, MSA128DOpnd>; 18710baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 1872b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamclass FMADD_W_DESC : MSA_3RF_4RF_DESC_BASE<"fmadd.w", fma, MSA128WOpnd>; 1873b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamclass FMADD_D_DESC : MSA_3RF_4RF_DESC_BASE<"fmadd.d", fma, MSA128DOpnd>; 18740baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18755f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleaclass FMAX_W_DESC : MSA_3RF_DESC_BASE<"fmax.w", int_mips_fmax_w, MSA128WOpnd>; 18760baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FMAX_D_DESC : MSA_3RF_DESC_BASE<"fmax.d", int_mips_fmax_d, MSA128DOpnd>; 1877360f53f3c216ee4fb433da0a367168785328a856Jim Ingham 187834507e41794909465d168af4048ebd07ee7819e8Greg Claytonclass FMAX_A_W_DESC : MSA_3RF_DESC_BASE<"fmax_a.w", int_mips_fmax_a_w, 187934507e41794909465d168af4048ebd07ee7819e8Greg Clayton MSA128WOpnd>; 188034507e41794909465d168af4048ebd07ee7819e8Greg Claytonclass FMAX_A_D_DESC : MSA_3RF_DESC_BASE<"fmax_a.d", int_mips_fmax_a_d, 188134507e41794909465d168af4048ebd07ee7819e8Greg Clayton MSA128DOpnd>; 188234507e41794909465d168af4048ebd07ee7819e8Greg Clayton 1883b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamclass FMIN_W_DESC : MSA_3RF_DESC_BASE<"fmin.w", int_mips_fmin_w, MSA128WOpnd>; 188434507e41794909465d168af4048ebd07ee7819e8Greg Claytonclass FMIN_D_DESC : MSA_3RF_DESC_BASE<"fmin.d", int_mips_fmin_d, MSA128DOpnd>; 188534507e41794909465d168af4048ebd07ee7819e8Greg Clayton 188634507e41794909465d168af4048ebd07ee7819e8Greg Claytonclass FMIN_A_W_DESC : MSA_3RF_DESC_BASE<"fmin_a.w", int_mips_fmin_a_w, 188734507e41794909465d168af4048ebd07ee7819e8Greg Clayton MSA128WOpnd>; 188834507e41794909465d168af4048ebd07ee7819e8Greg Claytonclass FMIN_A_D_DESC : MSA_3RF_DESC_BASE<"fmin_a.d", int_mips_fmin_a_d, 18890baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128DOpnd>; 18900baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18910baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FMSUB_W_DESC : MSA_3RF_4RF_DESC_BASE<"fmsub.w", fms, MSA128WOpnd>; 1892fa3a16a2ea380ef38388ebe323817bd1b32c20cdJim Inghamclass FMSUB_D_DESC : MSA_3RF_4RF_DESC_BASE<"fmsub.d", fms, MSA128DOpnd>; 18930baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18940baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FMUL_W_DESC : MSA_3RF_DESC_BASE<"fmul.w", fmul, MSA128WOpnd>; 18950baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FMUL_D_DESC : MSA_3RF_DESC_BASE<"fmul.d", fmul, MSA128DOpnd>; 18960baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 18970baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FRINT_W_DESC : MSA_2RF_DESC_BASE<"frint.w", frint, MSA128WOpnd>; 18980baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FRINT_D_DESC : MSA_2RF_DESC_BASE<"frint.d", frint, MSA128DOpnd>; 18990baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 19000baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FRCP_W_DESC : MSA_2RF_DESC_BASE<"frcp.w", int_mips_frcp_w, MSA128WOpnd>; 19010baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FRCP_D_DESC : MSA_2RF_DESC_BASE<"frcp.d", int_mips_frcp_d, MSA128DOpnd>; 19020baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 19030baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FRSQRT_W_DESC : MSA_2RF_DESC_BASE<"frsqrt.w", int_mips_frsqrt_w, 19040baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128WOpnd>; 19050baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FRSQRT_D_DESC : MSA_2RF_DESC_BASE<"frsqrt.d", int_mips_frsqrt_d, 19060baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton MSA128DOpnd>; 19070baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 19080baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FSAF_W_DESC : MSA_3RF_DESC_BASE<"fsaf.w", int_mips_fsaf_w, MSA128WOpnd>; 19090baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FSAF_D_DESC : MSA_3RF_DESC_BASE<"fsaf.d", int_mips_fsaf_d, MSA128DOpnd>; 19100baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 19110baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FSEQ_W_DESC : MSA_3RF_DESC_BASE<"fseq.w", int_mips_fseq_w, MSA128WOpnd>; 19120baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FSEQ_D_DESC : MSA_3RF_DESC_BASE<"fseq.d", int_mips_fseq_d, MSA128DOpnd>; 19130baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 19140baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FSLE_W_DESC : MSA_3RF_DESC_BASE<"fsle.w", int_mips_fsle_w, MSA128WOpnd>; 19150baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FSLE_D_DESC : MSA_3RF_DESC_BASE<"fsle.d", int_mips_fsle_d, MSA128DOpnd>; 19160baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 19170baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FSLT_W_DESC : MSA_3RF_DESC_BASE<"fslt.w", int_mips_fslt_w, MSA128WOpnd>; 19180baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Claytonclass FSLT_D_DESC : MSA_3RF_DESC_BASE<"fslt.d", int_mips_fslt_d, MSA128DOpnd>; 19190baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 192075906e4ec98af3717e415727a8d663a4e246bb4fGreg Claytonclass FSNE_W_DESC : MSA_3RF_DESC_BASE<"fsne.w", int_mips_fsne_w, MSA128WOpnd>; 192124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass FSNE_D_DESC : MSA_3RF_DESC_BASE<"fsne.d", int_mips_fsne_d, MSA128DOpnd>; 192224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 192375906e4ec98af3717e415727a8d663a4e246bb4fGreg Claytonclass FSOR_W_DESC : MSA_3RF_DESC_BASE<"fsor.w", int_mips_fsor_w, MSA128WOpnd>; 192475906e4ec98af3717e415727a8d663a4e246bb4fGreg Claytonclass FSOR_D_DESC : MSA_3RF_DESC_BASE<"fsor.d", int_mips_fsor_d, MSA128DOpnd>; 192575906e4ec98af3717e415727a8d663a4e246bb4fGreg Clayton 192624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass FSQRT_W_DESC : MSA_2RF_DESC_BASE<"fsqrt.w", fsqrt, MSA128WOpnd>; 192724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass FSQRT_D_DESC : MSA_2RF_DESC_BASE<"fsqrt.d", fsqrt, MSA128DOpnd>; 1928642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham 1929e31176627725f4236c9ca049edc027756709780bJim Inghamclass FSUB_W_DESC : MSA_3RF_DESC_BASE<"fsub.w", fsub, MSA128WOpnd>; 1930642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamclass FSUB_D_DESC : MSA_3RF_DESC_BASE<"fsub.d", fsub, MSA128DOpnd>; 1931642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham 1932642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamclass FSUEQ_W_DESC : MSA_3RF_DESC_BASE<"fsueq.w", int_mips_fsueq_w, 1933e31176627725f4236c9ca049edc027756709780bJim Ingham MSA128WOpnd>; 1934642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamclass FSUEQ_D_DESC : MSA_3RF_DESC_BASE<"fsueq.d", int_mips_fsueq_d, 1935e31176627725f4236c9ca049edc027756709780bJim Ingham MSA128DOpnd>; 1936642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham 1937e31176627725f4236c9ca049edc027756709780bJim Inghamclass FSULE_W_DESC : MSA_3RF_DESC_BASE<"fsule.w", int_mips_fsule_w, 1938e31176627725f4236c9ca049edc027756709780bJim Ingham MSA128WOpnd>; 1939642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamclass FSULE_D_DESC : MSA_3RF_DESC_BASE<"fsule.d", int_mips_fsule_d, 1940642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham MSA128DOpnd>; 1941642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham 1942642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamclass FSULT_W_DESC : MSA_3RF_DESC_BASE<"fsult.w", int_mips_fsult_w, 1943642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham MSA128WOpnd>; 1944642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamclass FSULT_D_DESC : MSA_3RF_DESC_BASE<"fsult.d", int_mips_fsult_d, 1945e31176627725f4236c9ca049edc027756709780bJim Ingham MSA128DOpnd>; 1946642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham 1947e31176627725f4236c9ca049edc027756709780bJim Inghamclass FSUN_W_DESC : MSA_3RF_DESC_BASE<"fsun.w", int_mips_fsun_w, 1948642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham MSA128WOpnd>; 1949642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamclass FSUN_D_DESC : MSA_3RF_DESC_BASE<"fsun.d", int_mips_fsun_d, 1950642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham MSA128DOpnd>; 1951642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham 1952642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamclass FSUNE_W_DESC : MSA_3RF_DESC_BASE<"fsune.w", int_mips_fsune_w, 1953642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham MSA128WOpnd>; 1954e31176627725f4236c9ca049edc027756709780bJim Inghamclass FSUNE_D_DESC : MSA_3RF_DESC_BASE<"fsune.d", int_mips_fsune_d, 1955642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham MSA128DOpnd>; 1956e31176627725f4236c9ca049edc027756709780bJim Ingham 1957642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamclass FTINT_S_W_DESC : MSA_2RF_DESC_BASE<"ftint_s.w", int_mips_ftint_s_w, 1958642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham MSA128WOpnd>; 1959642036f22366d47ea8e6f8498bedb92b88f7f79fJim Inghamclass FTINT_S_D_DESC : MSA_2RF_DESC_BASE<"ftint_s.d", int_mips_ftint_s_d, 1960642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham MSA128DOpnd>; 1961642036f22366d47ea8e6f8498bedb92b88f7f79fJim Ingham 19626b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granataclass FTINT_U_W_DESC : MSA_2RF_DESC_BASE<"ftint_u.w", int_mips_ftint_u_w, 19636b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata MSA128WOpnd>; 19646b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granataclass FTINT_U_D_DESC : MSA_2RF_DESC_BASE<"ftint_u.d", int_mips_ftint_u_d, 19656b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata MSA128DOpnd>; 19666b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata 19676b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granataclass FTQ_H_DESC : MSA_3RF_DESC_BASE<"ftq.h", int_mips_ftq_h, 19686b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata MSA128HOpnd, MSA128WOpnd, MSA128WOpnd>; 19696b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granataclass FTQ_W_DESC : MSA_3RF_DESC_BASE<"ftq.w", int_mips_ftq_w, 19706b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata MSA128WOpnd, MSA128DOpnd, MSA128DOpnd>; 19716b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata 19726b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granataclass FTRUNC_S_W_DESC : MSA_2RF_DESC_BASE<"ftrunc_s.w", fp_to_sint, 19736b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata MSA128WOpnd>; 19746b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granataclass FTRUNC_S_D_DESC : MSA_2RF_DESC_BASE<"ftrunc_s.d", fp_to_sint, 19756b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata MSA128DOpnd>; 19766b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata 19776b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granataclass FTRUNC_U_W_DESC : MSA_2RF_DESC_BASE<"ftrunc_u.w", fp_to_uint, 19786b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata MSA128WOpnd>; 19796b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granataclass FTRUNC_U_D_DESC : MSA_2RF_DESC_BASE<"ftrunc_u.d", fp_to_uint, 19806b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata MSA128DOpnd>; 19816b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granata 19826b1763b5ab8f182029807293d74a66e1e1c6bafdEnrico Granataclass HADD_S_H_DESC : MSA_3R_DESC_BASE<"hadd_s.h", int_mips_hadd_s_h, 198324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd, MSA128BOpnd, MSA128BOpnd>; 198424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass HADD_S_W_DESC : MSA_3R_DESC_BASE<"hadd_s.w", int_mips_hadd_s_w, 198524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd, MSA128HOpnd, MSA128HOpnd>; 198624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass HADD_S_D_DESC : MSA_3R_DESC_BASE<"hadd_s.d", int_mips_hadd_s_d, 198724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd, MSA128WOpnd, MSA128WOpnd>; 198824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 198924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass HADD_U_H_DESC : MSA_3R_DESC_BASE<"hadd_u.h", int_mips_hadd_u_h, 199024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd, MSA128BOpnd, MSA128BOpnd>; 199124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass HADD_U_W_DESC : MSA_3R_DESC_BASE<"hadd_u.w", int_mips_hadd_u_w, 199224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd, MSA128HOpnd, MSA128HOpnd>; 199324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass HADD_U_D_DESC : MSA_3R_DESC_BASE<"hadd_u.d", int_mips_hadd_u_d, 199424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd, MSA128WOpnd, MSA128WOpnd>; 199524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 199624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass HSUB_S_H_DESC : MSA_3R_DESC_BASE<"hsub_s.h", int_mips_hsub_s_h, 199724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd, MSA128BOpnd, MSA128BOpnd>; 199824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass HSUB_S_W_DESC : MSA_3R_DESC_BASE<"hsub_s.w", int_mips_hsub_s_w, 1999ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton MSA128WOpnd, MSA128HOpnd, MSA128HOpnd>; 2000ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytonclass HSUB_S_D_DESC : MSA_3R_DESC_BASE<"hsub_s.d", int_mips_hsub_s_d, 2001ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton MSA128DOpnd, MSA128WOpnd, MSA128WOpnd>; 2002ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 200324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass HSUB_U_H_DESC : MSA_3R_DESC_BASE<"hsub_u.h", int_mips_hsub_u_h, 200424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd, MSA128BOpnd, MSA128BOpnd>; 200524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass HSUB_U_W_DESC : MSA_3R_DESC_BASE<"hsub_u.w", int_mips_hsub_u_w, 200624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd, MSA128HOpnd, MSA128HOpnd>; 200724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass HSUB_U_D_DESC : MSA_3R_DESC_BASE<"hsub_u.d", int_mips_hsub_u_d, 200824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd, MSA128WOpnd, MSA128WOpnd>; 200924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 201024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVEV_B_DESC : MSA_3R_DESC_BASE<"ilvev.b", MipsILVEV, MSA128BOpnd>; 201124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVEV_H_DESC : MSA_3R_DESC_BASE<"ilvev.h", MipsILVEV, MSA128HOpnd>; 201224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVEV_W_DESC : MSA_3R_DESC_BASE<"ilvev.w", MipsILVEV, MSA128WOpnd>; 201324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVEV_D_DESC : MSA_3R_DESC_BASE<"ilvev.d", MipsILVEV, MSA128DOpnd>; 201424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 201524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVL_B_DESC : MSA_3R_DESC_BASE<"ilvl.b", MipsILVL, MSA128BOpnd>; 201624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVL_H_DESC : MSA_3R_DESC_BASE<"ilvl.h", MipsILVL, MSA128HOpnd>; 201724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVL_W_DESC : MSA_3R_DESC_BASE<"ilvl.w", MipsILVL, MSA128WOpnd>; 201824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVL_D_DESC : MSA_3R_DESC_BASE<"ilvl.d", MipsILVL, MSA128DOpnd>; 201924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 202024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVOD_B_DESC : MSA_3R_DESC_BASE<"ilvod.b", MipsILVOD, MSA128BOpnd>; 202124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVOD_H_DESC : MSA_3R_DESC_BASE<"ilvod.h", MipsILVOD, MSA128HOpnd>; 202224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVOD_W_DESC : MSA_3R_DESC_BASE<"ilvod.w", MipsILVOD, MSA128WOpnd>; 202324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVOD_D_DESC : MSA_3R_DESC_BASE<"ilvod.d", MipsILVOD, MSA128DOpnd>; 2024efb4aeba2bd8411ac0aee9934f08959094d50711Jim Ingham 202524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVR_B_DESC : MSA_3R_DESC_BASE<"ilvr.b", MipsILVR, MSA128BOpnd>; 202624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVR_H_DESC : MSA_3R_DESC_BASE<"ilvr.h", MipsILVR, MSA128HOpnd>; 202724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ILVR_W_DESC : MSA_3R_DESC_BASE<"ilvr.w", MipsILVR, MSA128WOpnd>; 20285f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleaclass ILVR_D_DESC : MSA_3R_DESC_BASE<"ilvr.d", MipsILVR, MSA128DOpnd>; 202924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 203024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass INSERT_B_DESC : MSA_INSERT_DESC_BASE<"insert.b", vinsert_v16i8, 203124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd, GPR32Opnd>; 203224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass INSERT_H_DESC : MSA_INSERT_DESC_BASE<"insert.h", vinsert_v8i16, 203324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd, GPR32Opnd>; 203424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass INSERT_W_DESC : MSA_INSERT_DESC_BASE<"insert.w", vinsert_v4i32, 203524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd, GPR32Opnd>; 203624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 203724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass INSERT_FW_PSEUDO_DESC : MSA_INSERT_PSEUDO_BASE<vector_insert, v4f32, 203824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd, FGR32Opnd>; 203924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass INSERT_FD_PSEUDO_DESC : MSA_INSERT_PSEUDO_BASE<vector_insert, v2f64, 204024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd, FGR64Opnd>; 204124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2042efb4aeba2bd8411ac0aee9934f08959094d50711Jim Inghamclass INSVE_B_DESC : MSA_INSVE_DESC_BASE<"insve.b", int_mips_insve_b, 204324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>; 204424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass INSVE_H_DESC : MSA_INSVE_DESC_BASE<"insve.h", int_mips_insve_h, 204524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 20465f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleaclass INSVE_W_DESC : MSA_INSVE_DESC_BASE<"insve.w", int_mips_insve_w, 204724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 204824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass INSVE_D_DESC : MSA_INSVE_DESC_BASE<"insve.d", int_mips_insve_d, 204924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>; 205024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 20513fd1f36c937575dbf57bae04c7ebaef78d8ecc1dStephen Wilsonclass LD_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 205213d24fb1817faa7ccc4cfd799113ba1a2b8968ebGreg Clayton ValueType TyNode, RegisterOperand ROWD, 205324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Operand MemOpnd = mem, ComplexPattern Addr = addrRegImm, 2054265ab33ae56209d2bfdc47510a557aa075b2a829Greg Clayton InstrItinClass itin = NoItinerary> { 205524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs ROWD:$wd); 205624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag InOperandList = (ins MemOpnd:$addr); 205724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = !strconcat(instr_asm, "\t$wd, $addr"); 205824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set ROWD:$wd, (TyNode (OpNode Addr:$addr)))]; 205924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = itin; 206024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string DecoderMethod = "DecodeMSA128Mem"; 206124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 206224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 206324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass LD_B_DESC : LD_DESC_BASE<"ld.b", load, v16i8, MSA128BOpnd>; 206424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass LD_H_DESC : LD_DESC_BASE<"ld.h", load, v8i16, MSA128HOpnd>; 206524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass LD_W_DESC : LD_DESC_BASE<"ld.w", load, v4i32, MSA128WOpnd>; 206624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass LD_D_DESC : LD_DESC_BASE<"ld.d", load, v2i64, MSA128DOpnd>; 206724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 206824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass LDI_B_DESC : MSA_I10_LDI_DESC_BASE<"ldi.b", MSA128BOpnd>; 206924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass LDI_H_DESC : MSA_I10_LDI_DESC_BASE<"ldi.h", MSA128HOpnd>; 207024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass LDI_W_DESC : MSA_I10_LDI_DESC_BASE<"ldi.w", MSA128WOpnd>; 207124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass LDI_D_DESC : MSA_I10_LDI_DESC_BASE<"ldi.d", MSA128DOpnd>; 207236da2aa6dc5ad9994b638ed09eb81c44cc05540bGreg Clayton 207324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass LSA_DESC { 207424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs GPR32:$rd); 2075efb4aeba2bd8411ac0aee9934f08959094d50711Jim Ingham dag InOperandList = (ins GPR32:$rs, GPR32:$rt, uimm2:$sa); 207624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = "lsa\t$rd, $rs, $rt, $sa"; 207724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = [(set GPR32:$rd, (add GPR32:$rs, (shl GPR32:$rt, 207824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner immZExt2Lsa:$sa)))]; 207924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = NoItinerary; 208024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 208124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 208224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MADD_Q_H_DESC : MSA_3RF_4RF_DESC_BASE<"madd_q.h", int_mips_madd_q_h, 208324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 208424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MADD_Q_W_DESC : MSA_3RF_4RF_DESC_BASE<"madd_q.w", int_mips_madd_q_w, 208524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 208624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 208724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MADDR_Q_H_DESC : MSA_3RF_4RF_DESC_BASE<"maddr_q.h", int_mips_maddr_q_h, 208824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 208924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MADDR_Q_W_DESC : MSA_3RF_4RF_DESC_BASE<"maddr_q.w", int_mips_maddr_q_w, 209024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 209124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 209224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MADDV_B_DESC : MSA_3R_4R_DESC_BASE<"maddv.b", muladd, MSA128BOpnd>; 209324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MADDV_H_DESC : MSA_3R_4R_DESC_BASE<"maddv.h", muladd, MSA128HOpnd>; 2094700ff7ea54b2808112a521f51dc8ecb5a7f8d5eaJim Inghamclass MADDV_W_DESC : MSA_3R_4R_DESC_BASE<"maddv.w", muladd, MSA128WOpnd>; 2095700ff7ea54b2808112a521f51dc8ecb5a7f8d5eaJim Inghamclass MADDV_D_DESC : MSA_3R_4R_DESC_BASE<"maddv.d", muladd, MSA128DOpnd>; 2096700ff7ea54b2808112a521f51dc8ecb5a7f8d5eaJim Ingham 209724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAX_A_B_DESC : MSA_3R_DESC_BASE<"max_a.b", int_mips_max_a_b, MSA128BOpnd>; 209824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAX_A_H_DESC : MSA_3R_DESC_BASE<"max_a.h", int_mips_max_a_h, MSA128HOpnd>; 209924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAX_A_W_DESC : MSA_3R_DESC_BASE<"max_a.w", int_mips_max_a_w, MSA128WOpnd>; 210024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAX_A_D_DESC : MSA_3R_DESC_BASE<"max_a.d", int_mips_max_a_d, MSA128DOpnd>; 210124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 210224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAX_S_B_DESC : MSA_3R_DESC_BASE<"max_s.b", MipsVSMax, MSA128BOpnd>; 210324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAX_S_H_DESC : MSA_3R_DESC_BASE<"max_s.h", MipsVSMax, MSA128HOpnd>; 210424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAX_S_W_DESC : MSA_3R_DESC_BASE<"max_s.w", MipsVSMax, MSA128WOpnd>; 210524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAX_S_D_DESC : MSA_3R_DESC_BASE<"max_s.d", MipsVSMax, MSA128DOpnd>; 210682820f9f021e289431ff3b79e56bd7d88097f327Jim Ingham 210724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAX_U_B_DESC : MSA_3R_DESC_BASE<"max_u.b", MipsVUMax, MSA128BOpnd>; 210882820f9f021e289431ff3b79e56bd7d88097f327Jim Inghamclass MAX_U_H_DESC : MSA_3R_DESC_BASE<"max_u.h", MipsVUMax, MSA128HOpnd>; 210924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAX_U_W_DESC : MSA_3R_DESC_BASE<"max_u.w", MipsVUMax, MSA128WOpnd>; 2110ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytonclass MAX_U_D_DESC : MSA_3R_DESC_BASE<"max_u.d", MipsVUMax, MSA128DOpnd>; 2111ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 211224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAXI_S_B_DESC : MSA_I5_DESC_BASE<"maxi_s.b", MipsVSMax, vsplati8_simm5, 2113ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton MSA128BOpnd>; 2114ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytonclass MAXI_S_H_DESC : MSA_I5_DESC_BASE<"maxi_s.h", MipsVSMax, vsplati16_simm5, 2115ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton MSA128HOpnd>; 2116ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytonclass MAXI_S_W_DESC : MSA_I5_DESC_BASE<"maxi_s.w", MipsVSMax, vsplati32_simm5, 211782820f9f021e289431ff3b79e56bd7d88097f327Jim Ingham MSA128WOpnd>; 211882820f9f021e289431ff3b79e56bd7d88097f327Jim Inghamclass MAXI_S_D_DESC : MSA_I5_DESC_BASE<"maxi_s.d", MipsVSMax, vsplati64_simm5, 211982820f9f021e289431ff3b79e56bd7d88097f327Jim Ingham MSA128DOpnd>; 2120ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 212182820f9f021e289431ff3b79e56bd7d88097f327Jim Inghamclass MAXI_U_B_DESC : MSA_I5_DESC_BASE<"maxi_u.b", MipsVUMax, vsplati8_uimm5, 2122ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton MSA128BOpnd>; 212382820f9f021e289431ff3b79e56bd7d88097f327Jim Inghamclass MAXI_U_H_DESC : MSA_I5_DESC_BASE<"maxi_u.h", MipsVUMax, vsplati16_uimm5, 212424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 2125ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytonclass MAXI_U_W_DESC : MSA_I5_DESC_BASE<"maxi_u.w", MipsVUMax, vsplati32_uimm5, 212624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 212724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MAXI_U_D_DESC : MSA_I5_DESC_BASE<"maxi_u.d", MipsVUMax, vsplati64_uimm5, 212824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>; 212924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 213024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MIN_A_B_DESC : MSA_3R_DESC_BASE<"min_a.b", int_mips_min_a_b, MSA128BOpnd>; 2131b1888f24fa181489840b9acf193e224d125d0776Greg Claytonclass MIN_A_H_DESC : MSA_3R_DESC_BASE<"min_a.h", int_mips_min_a_h, MSA128HOpnd>; 2132b1888f24fa181489840b9acf193e224d125d0776Greg Claytonclass MIN_A_W_DESC : MSA_3R_DESC_BASE<"min_a.w", int_mips_min_a_w, MSA128WOpnd>; 2133b1888f24fa181489840b9acf193e224d125d0776Greg Claytonclass MIN_A_D_DESC : MSA_3R_DESC_BASE<"min_a.d", int_mips_min_a_d, MSA128DOpnd>; 2134b1888f24fa181489840b9acf193e224d125d0776Greg Clayton 2135b1888f24fa181489840b9acf193e224d125d0776Greg Claytonclass MIN_S_B_DESC : MSA_3R_DESC_BASE<"min_s.b", MipsVSMin, MSA128BOpnd>; 2136b1888f24fa181489840b9acf193e224d125d0776Greg Claytonclass MIN_S_H_DESC : MSA_3R_DESC_BASE<"min_s.h", MipsVSMin, MSA128HOpnd>; 2137b1888f24fa181489840b9acf193e224d125d0776Greg Claytonclass MIN_S_W_DESC : MSA_3R_DESC_BASE<"min_s.w", MipsVSMin, MSA128WOpnd>; 2138b1888f24fa181489840b9acf193e224d125d0776Greg Claytonclass MIN_S_D_DESC : MSA_3R_DESC_BASE<"min_s.d", MipsVSMin, MSA128DOpnd>; 2139b1888f24fa181489840b9acf193e224d125d0776Greg Clayton 2140b1888f24fa181489840b9acf193e224d125d0776Greg Claytonclass MIN_U_B_DESC : MSA_3R_DESC_BASE<"min_u.b", MipsVUMin, MSA128BOpnd>; 214124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MIN_U_H_DESC : MSA_3R_DESC_BASE<"min_u.h", MipsVUMin, MSA128HOpnd>; 214224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MIN_U_W_DESC : MSA_3R_DESC_BASE<"min_u.w", MipsVUMin, MSA128WOpnd>; 214324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MIN_U_D_DESC : MSA_3R_DESC_BASE<"min_u.d", MipsVUMin, MSA128DOpnd>; 214424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 214524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MINI_S_B_DESC : MSA_I5_DESC_BASE<"mini_s.b", MipsVSMin, vsplati8_simm5, 2146952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton MSA128BOpnd>; 214724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MINI_S_H_DESC : MSA_I5_DESC_BASE<"mini_s.h", MipsVSMin, vsplati16_simm5, 214824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 21495f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleaclass MINI_S_W_DESC : MSA_I5_DESC_BASE<"mini_s.w", MipsVSMin, vsplati32_simm5, 215024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 215124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MINI_S_D_DESC : MSA_I5_DESC_BASE<"mini_s.d", MipsVSMin, vsplati64_simm5, 215224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>; 21535f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Malea 215424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MINI_U_B_DESC : MSA_I5_DESC_BASE<"mini_u.b", MipsVUMin, vsplati8_uimm5, 215524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>; 215624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MINI_U_H_DESC : MSA_I5_DESC_BASE<"mini_u.h", MipsVUMin, vsplati16_uimm5, 215724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 215824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MINI_U_W_DESC : MSA_I5_DESC_BASE<"mini_u.w", MipsVUMin, vsplati32_uimm5, 215924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 216024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MINI_U_D_DESC : MSA_I5_DESC_BASE<"mini_u.d", MipsVUMin, vsplati64_uimm5, 216124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>; 216224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 216324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MOD_S_B_DESC : MSA_3R_DESC_BASE<"mod_s.b", srem, MSA128BOpnd>; 216424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MOD_S_H_DESC : MSA_3R_DESC_BASE<"mod_s.h", srem, MSA128HOpnd>; 216524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MOD_S_W_DESC : MSA_3R_DESC_BASE<"mod_s.w", srem, MSA128WOpnd>; 216624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MOD_S_D_DESC : MSA_3R_DESC_BASE<"mod_s.d", srem, MSA128DOpnd>; 216724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 21685f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleaclass MOD_U_B_DESC : MSA_3R_DESC_BASE<"mod_u.b", urem, MSA128BOpnd>; 216924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MOD_U_H_DESC : MSA_3R_DESC_BASE<"mod_u.h", urem, MSA128HOpnd>; 217024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MOD_U_W_DESC : MSA_3R_DESC_BASE<"mod_u.w", urem, MSA128WOpnd>; 217124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MOD_U_D_DESC : MSA_3R_DESC_BASE<"mod_u.d", urem, MSA128DOpnd>; 217224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 217324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MOVE_V_DESC { 217424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag OutOperandList = (outs MSA128BOpnd:$wd); 217524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner dag InOperandList = (ins MSA128BOpnd:$ws); 217624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner string AsmString = "move.v\t$wd, $ws"; 217724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner list<dag> Pattern = []; 217824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = NoItinerary; 217924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 218024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 218124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSUB_Q_H_DESC : MSA_3RF_4RF_DESC_BASE<"msub_q.h", int_mips_msub_q_h, 218224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 218324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSUB_Q_W_DESC : MSA_3RF_4RF_DESC_BASE<"msub_q.w", int_mips_msub_q_w, 218424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 218524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 218624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSUBR_Q_H_DESC : MSA_3RF_4RF_DESC_BASE<"msubr_q.h", int_mips_msubr_q_h, 218724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 218824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSUBR_Q_W_DESC : MSA_3RF_4RF_DESC_BASE<"msubr_q.w", int_mips_msubr_q_w, 218924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 219024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 219124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSUBV_B_DESC : MSA_3R_4R_DESC_BASE<"msubv.b", mulsub, MSA128BOpnd>; 219224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSUBV_H_DESC : MSA_3R_4R_DESC_BASE<"msubv.h", mulsub, MSA128HOpnd>; 219324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSUBV_W_DESC : MSA_3R_4R_DESC_BASE<"msubv.w", mulsub, MSA128WOpnd>; 21945f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleaclass MSUBV_D_DESC : MSA_3R_4R_DESC_BASE<"msubv.d", mulsub, MSA128DOpnd>; 219524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 219624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MUL_Q_H_DESC : MSA_3RF_DESC_BASE<"mul_q.h", int_mips_mul_q_h, 219724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 219824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MUL_Q_W_DESC : MSA_3RF_DESC_BASE<"mul_q.w", int_mips_mul_q_w, 21999c236733d43e6250c8a5671a438f4a2afeb9c0b2Greg Clayton MSA128WOpnd>; 220024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 220124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MULR_Q_H_DESC : MSA_3RF_DESC_BASE<"mulr_q.h", int_mips_mulr_q_h, 220224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 220324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MULR_Q_W_DESC : MSA_3RF_DESC_BASE<"mulr_q.w", int_mips_mulr_q_w, 220424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 220524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 220624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MULV_B_DESC : MSA_3R_DESC_BASE<"mulv.b", mul, MSA128BOpnd>; 220724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MULV_H_DESC : MSA_3R_DESC_BASE<"mulv.h", mul, MSA128HOpnd>; 220824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MULV_W_DESC : MSA_3R_DESC_BASE<"mulv.w", mul, MSA128WOpnd>; 220924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MULV_D_DESC : MSA_3R_DESC_BASE<"mulv.d", mul, MSA128DOpnd>; 2210c2b9825ed2e06f90bb2764181fa53afd1a3763ebStephen Wilson 22115f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleaclass NLOC_B_DESC : MSA_2R_DESC_BASE<"nloc.b", int_mips_nloc_b, MSA128BOpnd>; 221224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass NLOC_H_DESC : MSA_2R_DESC_BASE<"nloc.h", int_mips_nloc_h, MSA128HOpnd>; 221324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass NLOC_W_DESC : MSA_2R_DESC_BASE<"nloc.w", int_mips_nloc_w, MSA128WOpnd>; 221424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass NLOC_D_DESC : MSA_2R_DESC_BASE<"nloc.d", int_mips_nloc_d, MSA128DOpnd>; 221524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 221624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass NLZC_B_DESC : MSA_2R_DESC_BASE<"nlzc.b", ctlz, MSA128BOpnd>; 221724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass NLZC_H_DESC : MSA_2R_DESC_BASE<"nlzc.h", ctlz, MSA128HOpnd>; 221824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass NLZC_W_DESC : MSA_2R_DESC_BASE<"nlzc.w", ctlz, MSA128WOpnd>; 221924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass NLZC_D_DESC : MSA_2R_DESC_BASE<"nlzc.d", ctlz, MSA128DOpnd>; 222024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 222124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass NOR_V_DESC : MSA_VEC_DESC_BASE<"nor.v", MipsVNOR, MSA128BOpnd>; 222224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass NOR_V_H_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<MipsVNOR, MSA128HOpnd>; 2223952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Claytonclass NOR_V_W_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<MipsVNOR, MSA128WOpnd>; 222424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass NOR_V_D_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<MipsVNOR, MSA128DOpnd>; 222524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 222624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass NORI_B_DESC : MSA_I8_DESC_BASE<"nori.b", MipsVNOR, vsplati8_uimm8, 2227efb4aeba2bd8411ac0aee9934f08959094d50711Jim Ingham MSA128BOpnd>; 222824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 222924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass OR_V_DESC : MSA_VEC_DESC_BASE<"or.v", or, MSA128BOpnd>; 223024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass OR_V_H_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<or, MSA128HOpnd>; 223124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass OR_V_W_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<or, MSA128WOpnd>; 223224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass OR_V_D_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<or, MSA128DOpnd>; 223324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 223424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass ORI_B_DESC : MSA_I8_DESC_BASE<"ori.b", or, vsplati8_uimm8, MSA128BOpnd>; 223524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 223624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass PCKEV_B_DESC : MSA_3R_DESC_BASE<"pckev.b", MipsPCKEV, MSA128BOpnd>; 223724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass PCKEV_H_DESC : MSA_3R_DESC_BASE<"pckev.h", MipsPCKEV, MSA128HOpnd>; 223824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass PCKEV_W_DESC : MSA_3R_DESC_BASE<"pckev.w", MipsPCKEV, MSA128WOpnd>; 223924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass PCKEV_D_DESC : MSA_3R_DESC_BASE<"pckev.d", MipsPCKEV, MSA128DOpnd>; 224054e7afa84d945f9137f9372ecde432f9e1a702fcGreg Clayton 2241141eeac2adf8987d31b1f0e955c259e93e539b18Stephen Wilsonclass PCKOD_B_DESC : MSA_3R_DESC_BASE<"pckod.b", MipsPCKOD, MSA128BOpnd>; 224224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass PCKOD_H_DESC : MSA_3R_DESC_BASE<"pckod.h", MipsPCKOD, MSA128HOpnd>; 224324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass PCKOD_W_DESC : MSA_3R_DESC_BASE<"pckod.w", MipsPCKOD, MSA128WOpnd>; 224424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass PCKOD_D_DESC : MSA_3R_DESC_BASE<"pckod.d", MipsPCKOD, MSA128DOpnd>; 224524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 224624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass PCNT_B_DESC : MSA_2R_DESC_BASE<"pcnt.b", ctpop, MSA128BOpnd>; 224724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass PCNT_H_DESC : MSA_2R_DESC_BASE<"pcnt.h", ctpop, MSA128HOpnd>; 224824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass PCNT_W_DESC : MSA_2R_DESC_BASE<"pcnt.w", ctpop, MSA128WOpnd>; 224924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass PCNT_D_DESC : MSA_2R_DESC_BASE<"pcnt.d", ctpop, MSA128DOpnd>; 225024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 225124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SAT_S_B_DESC : MSA_BIT_B_DESC_BASE<"sat_s.b", int_mips_sat_s_b, 225224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>; 225324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SAT_S_H_DESC : MSA_BIT_H_DESC_BASE<"sat_s.h", int_mips_sat_s_h, 225424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 225524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SAT_S_W_DESC : MSA_BIT_W_DESC_BASE<"sat_s.w", int_mips_sat_s_w, 225624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 225724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SAT_S_D_DESC : MSA_BIT_D_DESC_BASE<"sat_s.d", int_mips_sat_s_d, 225824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>; 225924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 226024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SAT_U_B_DESC : MSA_BIT_B_DESC_BASE<"sat_u.b", int_mips_sat_u_b, 226124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>; 226224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SAT_U_H_DESC : MSA_BIT_H_DESC_BASE<"sat_u.h", int_mips_sat_u_h, 226324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 226424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SAT_U_W_DESC : MSA_BIT_W_DESC_BASE<"sat_u.w", int_mips_sat_u_w, 226524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 226624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SAT_U_D_DESC : MSA_BIT_D_DESC_BASE<"sat_u.d", int_mips_sat_u_d, 226724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>; 226824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 226924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SHF_B_DESC : MSA_I8_SHF_DESC_BASE<"shf.b", MSA128BOpnd>; 227054e7afa84d945f9137f9372ecde432f9e1a702fcGreg Claytonclass SHF_H_DESC : MSA_I8_SHF_DESC_BASE<"shf.h", MSA128HOpnd>; 2271141eeac2adf8987d31b1f0e955c259e93e539b18Stephen Wilsonclass SHF_W_DESC : MSA_I8_SHF_DESC_BASE<"shf.w", MSA128WOpnd>; 227224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 227324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLD_B_DESC : MSA_3R_INDEX_DESC_BASE<"sld.b", int_mips_sld_b, MSA128BOpnd, 227424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd, GPR32Opnd>; 227524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLD_H_DESC : MSA_3R_INDEX_DESC_BASE<"sld.h", int_mips_sld_h, MSA128HOpnd, 227624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd, GPR32Opnd>; 227724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLD_W_DESC : MSA_3R_INDEX_DESC_BASE<"sld.w", int_mips_sld_w, MSA128WOpnd, 227824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd, GPR32Opnd>; 227924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLD_D_DESC : MSA_3R_INDEX_DESC_BASE<"sld.d", int_mips_sld_d, MSA128DOpnd, 228024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd, GPR32Opnd>; 22815f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Malea 228224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLDI_B_DESC : MSA_ELM_DESC_BASE<"sldi.b", int_mips_sldi_b, MSA128BOpnd>; 228324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLDI_H_DESC : MSA_ELM_DESC_BASE<"sldi.h", int_mips_sldi_h, MSA128HOpnd>; 228424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLDI_W_DESC : MSA_ELM_DESC_BASE<"sldi.w", int_mips_sldi_w, MSA128WOpnd>; 228524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLDI_D_DESC : MSA_ELM_DESC_BASE<"sldi.d", int_mips_sldi_d, MSA128DOpnd>; 228624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 228724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLL_B_DESC : MSA_3R_DESC_BASE<"sll.b", shl, MSA128BOpnd>; 228824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLL_H_DESC : MSA_3R_DESC_BASE<"sll.h", shl, MSA128HOpnd>; 228924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLL_W_DESC : MSA_3R_DESC_BASE<"sll.w", shl, MSA128WOpnd>; 229024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLL_D_DESC : MSA_3R_DESC_BASE<"sll.d", shl, MSA128DOpnd>; 229124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 229224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLLI_B_DESC : MSA_BIT_SPLAT_DESC_BASE<"slli.b", shl, vsplati8_uimm3, 229324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd>; 229424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLLI_H_DESC : MSA_BIT_SPLAT_DESC_BASE<"slli.h", shl, vsplati16_uimm4, 229524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd>; 229624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLLI_W_DESC : MSA_BIT_SPLAT_DESC_BASE<"slli.w", shl, vsplati32_uimm5, 229724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd>; 229824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SLLI_D_DESC : MSA_BIT_SPLAT_DESC_BASE<"slli.d", shl, vsplati64_uimm6, 229924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd>; 230024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 23015f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleaclass SPLAT_B_DESC : MSA_3R_INDEX_DESC_BASE<"splat.b", int_mips_splat_b, 230224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd, MSA128BOpnd, 230324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GPR32Opnd>; 230424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SPLAT_H_DESC : MSA_3R_INDEX_DESC_BASE<"splat.h", int_mips_splat_h, 230524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128HOpnd, MSA128HOpnd, 23065f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Malea GPR32Opnd>; 230724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SPLAT_W_DESC : MSA_3R_INDEX_DESC_BASE<"splat.w", int_mips_splat_w, 230824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128WOpnd, MSA128WOpnd, 230924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GPR32Opnd>; 231024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SPLAT_D_DESC : MSA_3R_INDEX_DESC_BASE<"splat.d", int_mips_splat_d, 231124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128DOpnd, MSA128DOpnd, 231224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GPR32Opnd>; 231324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2314fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Claytonclass SPLATI_B_DESC : MSA_ELM_SPLAT_DESC_BASE<"splati.b", vsplati8_uimm4, 2315fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Clayton MSA128BOpnd>; 2316fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Claytonclass SPLATI_H_DESC : MSA_ELM_SPLAT_DESC_BASE<"splati.h", vsplati16_uimm3, 2317fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Clayton MSA128HOpnd>; 2318fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Claytonclass SPLATI_W_DESC : MSA_ELM_SPLAT_DESC_BASE<"splati.w", vsplati32_uimm2, 2319fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Clayton MSA128WOpnd>; 2320f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SPLATI_D_DESC : MSA_ELM_SPLAT_DESC_BASE<"splati.d", vsplati64_uimm1, 2321f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan MSA128DOpnd>; 2322f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan 2323f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRA_B_DESC : MSA_3R_DESC_BASE<"sra.b", sra, MSA128BOpnd>; 2324f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRA_H_DESC : MSA_3R_DESC_BASE<"sra.h", sra, MSA128HOpnd>; 2325f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRA_W_DESC : MSA_3R_DESC_BASE<"sra.w", sra, MSA128WOpnd>; 2326f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRA_D_DESC : MSA_3R_DESC_BASE<"sra.d", sra, MSA128DOpnd>; 2327f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan 2328f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRAI_B_DESC : MSA_BIT_SPLAT_DESC_BASE<"srai.b", sra, vsplati8_uimm3, 2329f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan MSA128BOpnd>; 2330f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRAI_H_DESC : MSA_BIT_SPLAT_DESC_BASE<"srai.h", sra, vsplati16_uimm4, 2331f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan MSA128HOpnd>; 2332f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRAI_W_DESC : MSA_BIT_SPLAT_DESC_BASE<"srai.w", sra, vsplati32_uimm5, 2333f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan MSA128WOpnd>; 2334f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRAI_D_DESC : MSA_BIT_SPLAT_DESC_BASE<"srai.d", sra, vsplati64_uimm6, 2335f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan MSA128DOpnd>; 2336f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan 2337f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRAR_B_DESC : MSA_3R_DESC_BASE<"srar.b", int_mips_srar_b, MSA128BOpnd>; 2338f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRAR_H_DESC : MSA_3R_DESC_BASE<"srar.h", int_mips_srar_h, MSA128HOpnd>; 2339f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRAR_W_DESC : MSA_3R_DESC_BASE<"srar.w", int_mips_srar_w, MSA128WOpnd>; 2340f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRAR_D_DESC : MSA_3R_DESC_BASE<"srar.d", int_mips_srar_d, MSA128DOpnd>; 2341f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan 2342f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRARI_B_DESC : MSA_BIT_B_DESC_BASE<"srari.b", int_mips_srari_b, 2343f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan MSA128BOpnd>; 2344f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRARI_H_DESC : MSA_BIT_H_DESC_BASE<"srari.h", int_mips_srari_h, 2345f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan MSA128HOpnd>; 2346f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRARI_W_DESC : MSA_BIT_W_DESC_BASE<"srari.w", int_mips_srari_w, 2347f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan MSA128WOpnd>; 2348f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRARI_D_DESC : MSA_BIT_D_DESC_BASE<"srari.d", int_mips_srari_d, 2349f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan MSA128DOpnd>; 2350f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan 2351f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRL_B_DESC : MSA_3R_DESC_BASE<"srl.b", srl, MSA128BOpnd>; 2352f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRL_H_DESC : MSA_3R_DESC_BASE<"srl.h", srl, MSA128HOpnd>; 2353f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRL_W_DESC : MSA_3R_DESC_BASE<"srl.w", srl, MSA128WOpnd>; 2354f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRL_D_DESC : MSA_3R_DESC_BASE<"srl.d", srl, MSA128DOpnd>; 2355f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callanan 2356f90b5f34b87e0c1354b4d6f3d24830e69a2949a0Sean Callananclass SRLI_B_DESC : MSA_BIT_SPLAT_DESC_BASE<"srli.b", srl, vsplati8_uimm3, 2357fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Clayton MSA128BOpnd>; 2358fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Claytonclass SRLI_H_DESC : MSA_BIT_SPLAT_DESC_BASE<"srli.h", srl, vsplati16_uimm4, 2359fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Clayton MSA128HOpnd>; 2360dd29b97f71187509df339596c3397dea0e429754Greg Claytonclass SRLI_W_DESC : MSA_BIT_SPLAT_DESC_BASE<"srli.w", srl, vsplati32_uimm5, 2361dd29b97f71187509df339596c3397dea0e429754Greg Clayton MSA128WOpnd>; 2362dd29b97f71187509df339596c3397dea0e429754Greg Claytonclass SRLI_D_DESC : MSA_BIT_SPLAT_DESC_BASE<"srli.d", srl, vsplati64_uimm6, 2363eeeb2afb11f0726a7990101e2d55aa470118dec4Greg Clayton MSA128DOpnd>; 2364dd29b97f71187509df339596c3397dea0e429754Greg Clayton 2365dd29b97f71187509df339596c3397dea0e429754Greg Claytonclass SRLR_B_DESC : MSA_3R_DESC_BASE<"srlr.b", int_mips_srlr_b, MSA128BOpnd>; 2366dd29b97f71187509df339596c3397dea0e429754Greg Claytonclass SRLR_H_DESC : MSA_3R_DESC_BASE<"srlr.h", int_mips_srlr_h, MSA128HOpnd>; 2367dd29b97f71187509df339596c3397dea0e429754Greg Claytonclass SRLR_W_DESC : MSA_3R_DESC_BASE<"srlr.w", int_mips_srlr_w, MSA128WOpnd>; 2368dd29b97f71187509df339596c3397dea0e429754Greg Claytonclass SRLR_D_DESC : MSA_3R_DESC_BASE<"srlr.d", int_mips_srlr_d, MSA128DOpnd>; 2369dd29b97f71187509df339596c3397dea0e429754Greg Clayton 2370dd29b97f71187509df339596c3397dea0e429754Greg Claytonclass SRLRI_B_DESC : MSA_BIT_B_DESC_BASE<"srlri.b", int_mips_srlri_b, 2371dd29b97f71187509df339596c3397dea0e429754Greg Clayton MSA128BOpnd>; 2372dd29b97f71187509df339596c3397dea0e429754Greg Claytonclass SRLRI_H_DESC : MSA_BIT_H_DESC_BASE<"srlri.h", int_mips_srlri_h, 2373dd29b97f71187509df339596c3397dea0e429754Greg Clayton MSA128HOpnd>; 2374dd29b97f71187509df339596c3397dea0e429754Greg Claytonclass SRLRI_W_DESC : MSA_BIT_W_DESC_BASE<"srlri.w", int_mips_srlri_w, 2375dd29b97f71187509df339596c3397dea0e429754Greg Clayton MSA128WOpnd>; 2376dd29b97f71187509df339596c3397dea0e429754Greg Claytonclass SRLRI_D_DESC : MSA_BIT_D_DESC_BASE<"srlri.d", int_mips_srlri_d, 2377dd29b97f71187509df339596c3397dea0e429754Greg Clayton MSA128DOpnd>; 2378dd29b97f71187509df339596c3397dea0e429754Greg Clayton 2379dd29b97f71187509df339596c3397dea0e429754Greg Claytonclass ST_DESC_BASE<string instr_asm, SDPatternOperator OpNode, 2380dd29b97f71187509df339596c3397dea0e429754Greg Clayton ValueType TyNode, RegisterOperand ROWD, 2381dd29b97f71187509df339596c3397dea0e429754Greg Clayton Operand MemOpnd = mem, ComplexPattern Addr = addrRegImm, 2382fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Clayton InstrItinClass itin = NoItinerary> { 2383fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Clayton dag OutOperandList = (outs); 2384347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi dag InOperandList = (ins ROWD:$wd, MemOpnd:$addr); 2385347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi string AsmString = !strconcat(instr_asm, "\t$wd, $addr"); 2386347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi list<dag> Pattern = [(OpNode (TyNode ROWD:$wd), Addr:$addr)]; 2387347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi InstrItinClass Itinerary = itin; 2388347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi string DecoderMethod = "DecodeMSA128Mem"; 2389347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi} 2390347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi 2391347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass ST_B_DESC : ST_DESC_BASE<"st.b", store, v16i8, MSA128BOpnd>; 2392347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass ST_H_DESC : ST_DESC_BASE<"st.h", store, v8i16, MSA128HOpnd>; 2393347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass ST_W_DESC : ST_DESC_BASE<"st.w", store, v4i32, MSA128WOpnd>; 2394347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass ST_D_DESC : ST_DESC_BASE<"st.d", store, v2i64, MSA128DOpnd>; 2395347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi 2396347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBS_S_B_DESC : MSA_3R_DESC_BASE<"subs_s.b", int_mips_subs_s_b, 2397347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128BOpnd>; 2398347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBS_S_H_DESC : MSA_3R_DESC_BASE<"subs_s.h", int_mips_subs_s_h, 2399347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128HOpnd>; 2400347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBS_S_W_DESC : MSA_3R_DESC_BASE<"subs_s.w", int_mips_subs_s_w, 2401347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128WOpnd>; 2402347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBS_S_D_DESC : MSA_3R_DESC_BASE<"subs_s.d", int_mips_subs_s_d, 2403347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128DOpnd>; 2404347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi 2405347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBS_U_B_DESC : MSA_3R_DESC_BASE<"subs_u.b", int_mips_subs_u_b, 2406347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128BOpnd>; 2407347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBS_U_H_DESC : MSA_3R_DESC_BASE<"subs_u.h", int_mips_subs_u_h, 2408347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128HOpnd>; 2409347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBS_U_W_DESC : MSA_3R_DESC_BASE<"subs_u.w", int_mips_subs_u_w, 2410347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128WOpnd>; 2411347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBS_U_D_DESC : MSA_3R_DESC_BASE<"subs_u.d", int_mips_subs_u_d, 2412347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128DOpnd>; 2413347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi 2414347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBSUS_U_B_DESC : MSA_3R_DESC_BASE<"subsus_u.b", int_mips_subsus_u_b, 2415347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128BOpnd>; 2416347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBSUS_U_H_DESC : MSA_3R_DESC_BASE<"subsus_u.h", int_mips_subsus_u_h, 2417347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128HOpnd>; 2418347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBSUS_U_W_DESC : MSA_3R_DESC_BASE<"subsus_u.w", int_mips_subsus_u_w, 2419347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128WOpnd>; 2420347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBSUS_U_D_DESC : MSA_3R_DESC_BASE<"subsus_u.d", int_mips_subsus_u_d, 2421347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128DOpnd>; 2422347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi 2423347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBSUU_S_B_DESC : MSA_3R_DESC_BASE<"subsuu_s.b", int_mips_subsuu_s_b, 2424347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128BOpnd>; 2425347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBSUU_S_H_DESC : MSA_3R_DESC_BASE<"subsuu_s.h", int_mips_subsuu_s_h, 2426347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128HOpnd>; 2427347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBSUU_S_W_DESC : MSA_3R_DESC_BASE<"subsuu_s.w", int_mips_subsuu_s_w, 2428347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128WOpnd>; 2429347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBSUU_S_D_DESC : MSA_3R_DESC_BASE<"subsuu_s.d", int_mips_subsuu_s_d, 2430347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi MSA128DOpnd>; 2431347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi 2432347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBV_B_DESC : MSA_3R_DESC_BASE<"subv.b", sub, MSA128BOpnd>; 2433347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBV_H_DESC : MSA_3R_DESC_BASE<"subv.h", sub, MSA128HOpnd>; 2434347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBV_W_DESC : MSA_3R_DESC_BASE<"subv.w", sub, MSA128WOpnd>; 2435347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBV_D_DESC : MSA_3R_DESC_BASE<"subv.d", sub, MSA128DOpnd>; 2436347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthi 2437347d722127cc6a19b077244305c3d350ea4ef80eAshok Thirumurthiclass SUBVI_B_DESC : MSA_I5_DESC_BASE<"subvi.b", sub, vsplati8_uimm5, 24384a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton MSA128BOpnd>; 2439b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass SUBVI_H_DESC : MSA_I5_DESC_BASE<"subvi.h", sub, vsplati16_uimm5, 2440b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton MSA128HOpnd>; 2441b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass SUBVI_W_DESC : MSA_I5_DESC_BASE<"subvi.w", sub, vsplati32_uimm5, 2442b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton MSA128WOpnd>; 24434a2e33769873d68d5703da5742c0e248f46e3a72Greg Claytonclass SUBVI_D_DESC : MSA_I5_DESC_BASE<"subvi.d", sub, vsplati64_uimm5, 2444b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton MSA128DOpnd>; 2445b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 2446b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass VSHF_B_DESC : MSA_3R_VSHF_DESC_BASE<"vshf.b", MSA128BOpnd>; 2447b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass VSHF_H_DESC : MSA_3R_VSHF_DESC_BASE<"vshf.h", MSA128HOpnd>; 2448b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass VSHF_W_DESC : MSA_3R_VSHF_DESC_BASE<"vshf.w", MSA128WOpnd>; 2449b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass VSHF_D_DESC : MSA_3R_VSHF_DESC_BASE<"vshf.d", MSA128DOpnd>; 2450b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 2451b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass XOR_V_DESC : MSA_VEC_DESC_BASE<"xor.v", xor, MSA128BOpnd>; 2452b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass XOR_V_H_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<xor, MSA128HOpnd>; 2453b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass XOR_V_W_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<xor, MSA128WOpnd>; 2454b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass XOR_V_D_PSEUDO_DESC : MSA_VEC_PSEUDO_BASE<xor, MSA128DOpnd>; 2455b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 2456b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytonclass XORI_B_DESC : MSA_I8_DESC_BASE<"xori.b", xor, vsplati8_uimm8, 2457b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton MSA128BOpnd>; 2458b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 2459b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton// Instruction defs. 24604a2e33769873d68d5703da5742c0e248f46e3a72Greg Claytondef ADD_A_B : ADD_A_B_ENC, ADD_A_B_DESC; 2461b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADD_A_H : ADD_A_H_ENC, ADD_A_H_DESC; 2462b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADD_A_W : ADD_A_W_ENC, ADD_A_W_DESC; 2463b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADD_A_D : ADD_A_D_ENC, ADD_A_D_DESC; 2464b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 2465b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDS_A_B : ADDS_A_B_ENC, ADDS_A_B_DESC; 2466b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDS_A_H : ADDS_A_H_ENC, ADDS_A_H_DESC; 2467b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDS_A_W : ADDS_A_W_ENC, ADDS_A_W_DESC; 2468b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDS_A_D : ADDS_A_D_ENC, ADDS_A_D_DESC; 2469b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 2470b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDS_S_B : ADDS_S_B_ENC, ADDS_S_B_DESC; 2471b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDS_S_H : ADDS_S_H_ENC, ADDS_S_H_DESC; 2472b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDS_S_W : ADDS_S_W_ENC, ADDS_S_W_DESC; 2473b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDS_S_D : ADDS_S_D_ENC, ADDS_S_D_DESC; 2474b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 2475b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDS_U_B : ADDS_U_B_ENC, ADDS_U_B_DESC; 24764a2e33769873d68d5703da5742c0e248f46e3a72Greg Claytondef ADDS_U_H : ADDS_U_H_ENC, ADDS_U_H_DESC; 24774a2e33769873d68d5703da5742c0e248f46e3a72Greg Claytondef ADDS_U_W : ADDS_U_W_ENC, ADDS_U_W_DESC; 24784a2e33769873d68d5703da5742c0e248f46e3a72Greg Claytondef ADDS_U_D : ADDS_U_D_ENC, ADDS_U_D_DESC; 24794a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton 24804a2e33769873d68d5703da5742c0e248f46e3a72Greg Claytondef ADDV_B : ADDV_B_ENC, ADDV_B_DESC; 24814a2e33769873d68d5703da5742c0e248f46e3a72Greg Claytondef ADDV_H : ADDV_H_ENC, ADDV_H_DESC; 24824a2e33769873d68d5703da5742c0e248f46e3a72Greg Claytondef ADDV_W : ADDV_W_ENC, ADDV_W_DESC; 2483b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDV_D : ADDV_D_ENC, ADDV_D_DESC; 2484b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Clayton 2485b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDVI_B : ADDVI_B_ENC, ADDVI_B_DESC; 2486b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef ADDVI_H : ADDVI_H_ENC, ADDVI_H_DESC; 2487fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Claytondef ADDVI_W : ADDVI_W_ENC, ADDVI_W_DESC; 2488fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Claytondef ADDVI_D : ADDVI_D_ENC, ADDVI_D_DESC; 248924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 249024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef AND_V : AND_V_ENC, AND_V_DESC; 249124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef AND_V_H_PSEUDO : AND_V_H_PSEUDO_DESC, 249224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner PseudoInstExpansion<(AND_V MSA128BOpnd:$wd, 249324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd:$ws, 249424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd:$wt)>; 249524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef AND_V_W_PSEUDO : AND_V_W_PSEUDO_DESC, 249624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner PseudoInstExpansion<(AND_V MSA128BOpnd:$wd, 249724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd:$ws, 249824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd:$wt)>; 249924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef AND_V_D_PSEUDO : AND_V_D_PSEUDO_DESC, 250024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner PseudoInstExpansion<(AND_V MSA128BOpnd:$wd, 250124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd:$ws, 250224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd:$wt)>; 250324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 250424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ANDI_B : ANDI_B_ENC, ANDI_B_DESC; 250524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 250624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ASUB_S_B : ASUB_S_B_ENC, ASUB_S_B_DESC; 250724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ASUB_S_H : ASUB_S_H_ENC, ASUB_S_H_DESC; 250824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ASUB_S_W : ASUB_S_W_ENC, ASUB_S_W_DESC; 250924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ASUB_S_D : ASUB_S_D_ENC, ASUB_S_D_DESC; 251024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 251124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ASUB_U_B : ASUB_U_B_ENC, ASUB_U_B_DESC; 251224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ASUB_U_H : ASUB_U_H_ENC, ASUB_U_H_DESC; 251324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ASUB_U_W : ASUB_U_W_ENC, ASUB_U_W_DESC; 2514f72fdeee129bbd7195f3db888b561ede689886aaGreg Claytondef ASUB_U_D : ASUB_U_D_ENC, ASUB_U_D_DESC; 2515c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2516f72fdeee129bbd7195f3db888b561ede689886aaGreg Claytondef AVE_S_B : AVE_S_B_ENC, AVE_S_B_DESC; 2517c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVE_S_H : AVE_S_H_ENC, AVE_S_H_DESC; 2518c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVE_S_W : AVE_S_W_ENC, AVE_S_W_DESC; 2519c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVE_S_D : AVE_S_D_ENC, AVE_S_D_DESC; 2520c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2521c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVE_U_B : AVE_U_B_ENC, AVE_U_B_DESC; 2522c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVE_U_H : AVE_U_H_ENC, AVE_U_H_DESC; 2523c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVE_U_W : AVE_U_W_ENC, AVE_U_W_DESC; 2524c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVE_U_D : AVE_U_D_ENC, AVE_U_D_DESC; 2525c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2526c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVER_S_B : AVER_S_B_ENC, AVER_S_B_DESC; 2527c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVER_S_H : AVER_S_H_ENC, AVER_S_H_DESC; 2528c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVER_S_W : AVER_S_W_ENC, AVER_S_W_DESC; 2529c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVER_S_D : AVER_S_D_ENC, AVER_S_D_DESC; 2530c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2531c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVER_U_B : AVER_U_B_ENC, AVER_U_B_DESC; 2532c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVER_U_H : AVER_U_H_ENC, AVER_U_H_DESC; 2533c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVER_U_W : AVER_U_W_ENC, AVER_U_W_DESC; 2534c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef AVER_U_D : AVER_U_D_ENC, AVER_U_D_DESC; 2535c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2536c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef BCLR_B : BCLR_B_ENC, BCLR_B_DESC; 2537c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef BCLR_H : BCLR_H_ENC, BCLR_H_DESC; 2538c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef BCLR_W : BCLR_W_ENC, BCLR_W_DESC; 2539c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef BCLR_D : BCLR_D_ENC, BCLR_D_DESC; 2540c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2541c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef BCLRI_B : BCLRI_B_ENC, BCLRI_B_DESC; 2542f72fdeee129bbd7195f3db888b561ede689886aaGreg Claytondef BCLRI_H : BCLRI_H_ENC, BCLRI_H_DESC; 2543c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef BCLRI_W : BCLRI_W_ENC, BCLRI_W_DESC; 2544c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef BCLRI_D : BCLRI_D_ENC, BCLRI_D_DESC; 2545f72fdeee129bbd7195f3db888b561ede689886aaGreg Clayton 2546f72fdeee129bbd7195f3db888b561ede689886aaGreg Claytondef BINSL_B : BINSL_B_ENC, BINSL_B_DESC; 254724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSL_H : BINSL_H_ENC, BINSL_H_DESC; 254824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSL_W : BINSL_W_ENC, BINSL_W_DESC; 254924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSL_D : BINSL_D_ENC, BINSL_D_DESC; 255024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 255124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSLI_B : BINSLI_B_ENC, BINSLI_B_DESC; 255224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSLI_H : BINSLI_H_ENC, BINSLI_H_DESC; 255324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSLI_W : BINSLI_W_ENC, BINSLI_W_DESC; 255424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSLI_D : BINSLI_D_ENC, BINSLI_D_DESC; 255524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 255624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSR_B : BINSR_B_ENC, BINSR_B_DESC; 255724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSR_H : BINSR_H_ENC, BINSR_H_DESC; 255824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSR_W : BINSR_W_ENC, BINSR_W_DESC; 255924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSR_D : BINSR_D_ENC, BINSR_D_DESC; 256024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 256124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSRI_B : BINSRI_B_ENC, BINSRI_B_DESC; 256224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSRI_H : BINSRI_H_ENC, BINSRI_H_DESC; 256324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSRI_W : BINSRI_W_ENC, BINSRI_W_DESC; 256424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BINSRI_D : BINSRI_D_ENC, BINSRI_D_DESC; 256524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 256624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BMNZ_V : BMNZ_V_ENC, BMNZ_V_DESC; 256724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 256824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BMNZI_B : BMNZI_B_ENC, BMNZI_B_DESC; 256924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2570fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Claytondef BMZ_V : BMZ_V_ENC, BMZ_V_DESC; 2571fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Clayton 2572fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Claytondef BMZI_B : BMZI_B_ENC, BMZI_B_DESC; 2573fd119995f2693eb6e9e2ea3e685f9d872f5cd4f1Greg Clayton 257424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BNEG_B : BNEG_B_ENC, BNEG_B_DESC; 257524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BNEG_H : BNEG_H_ENC, BNEG_H_DESC; 2576e41494a9092e15192012a5e0a8a1ffd66c70b8bbJim Inghamdef BNEG_W : BNEG_W_ENC, BNEG_W_DESC; 257721f37ad875d4f50d1b4b3d307e120f6d27103730Jim Inghamdef BNEG_D : BNEG_D_ENC, BNEG_D_DESC; 2578e41494a9092e15192012a5e0a8a1ffd66c70b8bbJim Ingham 257924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BNEGI_B : BNEGI_B_ENC, BNEGI_B_DESC; 258024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BNEGI_H : BNEGI_H_ENC, BNEGI_H_DESC; 258124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BNEGI_W : BNEGI_W_ENC, BNEGI_W_DESC; 258224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BNEGI_D : BNEGI_D_ENC, BNEGI_D_DESC; 2583ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2584ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BNZ_B : BNZ_B_ENC, BNZ_B_DESC; 2585ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BNZ_H : BNZ_H_ENC, BNZ_H_DESC; 258624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BNZ_W : BNZ_W_ENC, BNZ_W_DESC; 2587ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BNZ_D : BNZ_D_ENC, BNZ_D_DESC; 2588ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2589ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BNZ_V : BNZ_V_ENC, BNZ_V_DESC; 2590ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 259124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef BSEL_V : BSEL_V_ENC, BSEL_V_DESC; 2592ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2593ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytonclass MSA_BSEL_PSEUDO_BASE<RegisterOperand RO, ValueType Ty> : 259424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MipsPseudo<(outs RO:$wd), (ins RO:$wd_in, RO:$ws, RO:$wt), 2595ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton [(set RO:$wd, (Ty (vselect RO:$wd_in, RO:$ws, RO:$wt)))]>, 2596ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton PseudoInstExpansion<(BSEL_V MSA128BOpnd:$wd, MSA128BOpnd:$wd_in, 2597ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton MSA128BOpnd:$ws, MSA128BOpnd:$wt)> { 2598ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton let Constraints = "$wd_in = $wd"; 2599ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton} 2600ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2601ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSEL_H_PSEUDO : MSA_BSEL_PSEUDO_BASE<MSA128HOpnd, v8i16>; 2602ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSEL_W_PSEUDO : MSA_BSEL_PSEUDO_BASE<MSA128WOpnd, v4i32>; 2603ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSEL_D_PSEUDO : MSA_BSEL_PSEUDO_BASE<MSA128DOpnd, v2i64>; 2604ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSEL_FW_PSEUDO : MSA_BSEL_PSEUDO_BASE<MSA128WOpnd, v4f32>; 2605ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSEL_FD_PSEUDO : MSA_BSEL_PSEUDO_BASE<MSA128DOpnd, v2f64>; 2606ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2607ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSELI_B : BSELI_B_ENC, BSELI_B_DESC; 2608ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2609ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSET_B : BSET_B_ENC, BSET_B_DESC; 2610ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSET_H : BSET_H_ENC, BSET_H_DESC; 2611ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSET_W : BSET_W_ENC, BSET_W_DESC; 2612ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSET_D : BSET_D_ENC, BSET_D_DESC; 2613ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2614ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSETI_B : BSETI_B_ENC, BSETI_B_DESC; 2615ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSETI_H : BSETI_H_ENC, BSETI_H_DESC; 2616ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSETI_W : BSETI_W_ENC, BSETI_W_DESC; 2617ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BSETI_D : BSETI_D_ENC, BSETI_D_DESC; 2618ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2619ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BZ_B : BZ_B_ENC, BZ_B_DESC; 2620ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BZ_H : BZ_H_ENC, BZ_H_DESC; 2621ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BZ_W : BZ_W_ENC, BZ_W_DESC; 2622ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BZ_D : BZ_D_ENC, BZ_D_DESC; 2623ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2624ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef BZ_V : BZ_V_ENC, BZ_V_DESC; 2625ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2626ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CEQ_B : CEQ_B_ENC, CEQ_B_DESC; 2627ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CEQ_H : CEQ_H_ENC, CEQ_H_DESC; 2628ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CEQ_W : CEQ_W_ENC, CEQ_W_DESC; 2629ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CEQ_D : CEQ_D_ENC, CEQ_D_DESC; 2630ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2631ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CEQI_B : CEQI_B_ENC, CEQI_B_DESC; 2632ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CEQI_H : CEQI_H_ENC, CEQI_H_DESC; 2633ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CEQI_W : CEQI_W_ENC, CEQI_W_DESC; 2634ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CEQI_D : CEQI_D_ENC, CEQI_D_DESC; 2635ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2636ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CFCMSA : CFCMSA_ENC, CFCMSA_DESC; 2637ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2638ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CLE_S_B : CLE_S_B_ENC, CLE_S_B_DESC; 2639ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CLE_S_H : CLE_S_H_ENC, CLE_S_H_DESC; 2640ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CLE_S_W : CLE_S_W_ENC, CLE_S_W_DESC; 2641ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CLE_S_D : CLE_S_D_ENC, CLE_S_D_DESC; 2642ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Clayton 2643ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CLE_U_B : CLE_U_B_ENC, CLE_U_B_DESC; 2644ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CLE_U_H : CLE_U_H_ENC, CLE_U_H_DESC; 2645ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CLE_U_W : CLE_U_W_ENC, CLE_U_W_DESC; 264624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef CLE_U_D : CLE_U_D_ENC, CLE_U_D_DESC; 264724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 264824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef CLEI_S_B : CLEI_S_B_ENC, CLEI_S_B_DESC; 2649ac94caa68a4a5fa4bd939d7656a6a12d8fc06a33Greg Claytondef CLEI_S_H : CLEI_S_H_ENC, CLEI_S_H_DESC; 265024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef CLEI_S_W : CLEI_S_W_ENC, CLEI_S_W_DESC; 2651c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLEI_S_D : CLEI_S_D_ENC, CLEI_S_D_DESC; 2652c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 265336da2aa6dc5ad9994b638ed09eb81c44cc05540bGreg Claytondef CLEI_U_B : CLEI_U_B_ENC, CLEI_U_B_DESC; 2654c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLEI_U_H : CLEI_U_H_ENC, CLEI_U_H_DESC; 2655c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLEI_U_W : CLEI_U_W_ENC, CLEI_U_W_DESC; 2656c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLEI_U_D : CLEI_U_D_ENC, CLEI_U_D_DESC; 2657c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2658c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLT_S_B : CLT_S_B_ENC, CLT_S_B_DESC; 2659c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLT_S_H : CLT_S_H_ENC, CLT_S_H_DESC; 2660c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLT_S_W : CLT_S_W_ENC, CLT_S_W_DESC; 2661c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLT_S_D : CLT_S_D_ENC, CLT_S_D_DESC; 2662c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2663c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLT_U_B : CLT_U_B_ENC, CLT_U_B_DESC; 2664c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLT_U_H : CLT_U_H_ENC, CLT_U_H_DESC; 2665c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLT_U_W : CLT_U_W_ENC, CLT_U_W_DESC; 2666c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLT_U_D : CLT_U_D_ENC, CLT_U_D_DESC; 2667c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2668c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLTI_S_B : CLTI_S_B_ENC, CLTI_S_B_DESC; 2669c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLTI_S_H : CLTI_S_H_ENC, CLTI_S_H_DESC; 2670c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLTI_S_W : CLTI_S_W_ENC, CLTI_S_W_DESC; 2671c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLTI_S_D : CLTI_S_D_ENC, CLTI_S_D_DESC; 2672c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2673c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLTI_U_B : CLTI_U_B_ENC, CLTI_U_B_DESC; 2674c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLTI_U_H : CLTI_U_H_ENC, CLTI_U_H_DESC; 2675c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLTI_U_W : CLTI_U_W_ENC, CLTI_U_W_DESC; 2676c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef CLTI_U_D : CLTI_U_D_ENC, CLTI_U_D_DESC; 2677c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2678c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef COPY_S_B : COPY_S_B_ENC, COPY_S_B_DESC; 2679c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef COPY_S_H : COPY_S_H_ENC, COPY_S_H_DESC; 2680a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Claytondef COPY_S_W : COPY_S_W_ENC, COPY_S_W_DESC; 2681a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Clayton 2682a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Claytondef COPY_U_B : COPY_U_B_ENC, COPY_U_B_DESC; 2683a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Claytondef COPY_U_H : COPY_U_H_ENC, COPY_U_H_DESC; 2684a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Claytondef COPY_U_W : COPY_U_W_ENC, COPY_U_W_DESC; 2685a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Clayton 2686c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef COPY_FW_PSEUDO : COPY_FW_PSEUDO_DESC; 2687a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Claytondef COPY_FD_PSEUDO : COPY_FD_PSEUDO_DESC; 2688a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Clayton 2689a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Claytondef CTCMSA : CTCMSA_ENC, CTCMSA_DESC; 2690a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Clayton 2691a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Claytondef DIV_S_B : DIV_S_B_ENC, DIV_S_B_DESC; 2692c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DIV_S_H : DIV_S_H_ENC, DIV_S_H_DESC; 2693c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DIV_S_W : DIV_S_W_ENC, DIV_S_W_DESC; 2694c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DIV_S_D : DIV_S_D_ENC, DIV_S_D_DESC; 269536da2aa6dc5ad9994b638ed09eb81c44cc05540bGreg Clayton 2696a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Claytondef DIV_U_B : DIV_U_B_ENC, DIV_U_B_DESC; 2697a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Claytondef DIV_U_H : DIV_U_H_ENC, DIV_U_H_DESC; 2698c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DIV_U_W : DIV_U_W_ENC, DIV_U_W_DESC; 2699a0fbd4678915fa07d03ad3bede2342acdbdbf8e7Greg Claytondef DIV_U_D : DIV_U_D_ENC, DIV_U_D_DESC; 2700c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2701c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DOTP_S_H : DOTP_S_H_ENC, DOTP_S_H_DESC; 2702c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DOTP_S_W : DOTP_S_W_ENC, DOTP_S_W_DESC; 2703c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DOTP_S_D : DOTP_S_D_ENC, DOTP_S_D_DESC; 2704c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2705c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DOTP_U_H : DOTP_U_H_ENC, DOTP_U_H_DESC; 2706c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DOTP_U_W : DOTP_U_W_ENC, DOTP_U_W_DESC; 2707c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DOTP_U_D : DOTP_U_D_ENC, DOTP_U_D_DESC; 2708c0fa53324d62a48257c092a3347d6e7236aa3152Greg Clayton 2709c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DPADD_S_H : DPADD_S_H_ENC, DPADD_S_H_DESC; 2710c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DPADD_S_W : DPADD_S_W_ENC, DPADD_S_W_DESC; 2711c0fa53324d62a48257c092a3347d6e7236aa3152Greg Claytondef DPADD_S_D : DPADD_S_D_ENC, DPADD_S_D_DESC; 2712613b8739a4d489b7f1c571288d5786768c024205Greg Clayton 271324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef DPADD_U_H : DPADD_U_H_ENC, DPADD_U_H_DESC; 271424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef DPADD_U_W : DPADD_U_W_ENC, DPADD_U_W_DESC; 271524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef DPADD_U_D : DPADD_U_D_ENC, DPADD_U_D_DESC; 2716e6bd142d9fa7ed149bd37efd8a75637375f165b7Jim Ingham 2717e6bd142d9fa7ed149bd37efd8a75637375f165b7Jim Inghamdef DPSUB_S_H : DPSUB_S_H_ENC, DPSUB_S_H_DESC; 2718e6bd142d9fa7ed149bd37efd8a75637375f165b7Jim Inghamdef DPSUB_S_W : DPSUB_S_W_ENC, DPSUB_S_W_DESC; 2719613b8739a4d489b7f1c571288d5786768c024205Greg Claytondef DPSUB_S_D : DPSUB_S_D_ENC, DPSUB_S_D_DESC; 2720613b8739a4d489b7f1c571288d5786768c024205Greg Clayton 2721613b8739a4d489b7f1c571288d5786768c024205Greg Claytondef DPSUB_U_H : DPSUB_U_H_ENC, DPSUB_U_H_DESC; 27222860ba9c531076adc93cb6fe7bbf2933b42ade69Greg Claytondef DPSUB_U_W : DPSUB_U_W_ENC, DPSUB_U_W_DESC; 2723952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Claytondef DPSUB_U_D : DPSUB_U_D_ENC, DPSUB_U_D_DESC; 27242860ba9c531076adc93cb6fe7bbf2933b42ade69Greg Clayton 27255f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleadef FADD_W : FADD_W_ENC, FADD_W_DESC; 27262860ba9c531076adc93cb6fe7bbf2933b42ade69Greg Claytondef FADD_D : FADD_D_ENC, FADD_D_DESC; 2727613b8739a4d489b7f1c571288d5786768c024205Greg Clayton 27282860ba9c531076adc93cb6fe7bbf2933b42ade69Greg Claytondef FCAF_W : FCAF_W_ENC, FCAF_W_DESC; 272921f37ad875d4f50d1b4b3d307e120f6d27103730Jim Inghamdef FCAF_D : FCAF_D_ENC, FCAF_D_DESC; 273021f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham 27312860ba9c531076adc93cb6fe7bbf2933b42ade69Greg Claytondef FCEQ_W : FCEQ_W_ENC, FCEQ_W_DESC; 2732613b8739a4d489b7f1c571288d5786768c024205Greg Claytondef FCEQ_D : FCEQ_D_ENC, FCEQ_D_DESC; 273324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 273424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FCLE_W : FCLE_W_ENC, FCLE_W_DESC; 27356cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanandef FCLE_D : FCLE_D_ENC, FCLE_D_DESC; 27366cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanan 27376cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanandef FCLT_W : FCLT_W_ENC, FCLT_W_DESC; 273804200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanandef FCLT_D : FCLT_D_ENC, FCLT_D_DESC; 273904200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanan 274004200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanandef FCLASS_W : FCLASS_W_ENC, FCLASS_W_DESC; 274104200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanandef FCLASS_D : FCLASS_D_ENC, FCLASS_D_DESC; 274204200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanan 274304200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanandef FCNE_W : FCNE_W_ENC, FCNE_W_DESC; 274404200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanandef FCNE_D : FCNE_D_ENC, FCNE_D_DESC; 274504200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanan 274604200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanandef FCOR_W : FCOR_W_ENC, FCOR_W_DESC; 274704200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanandef FCOR_D : FCOR_D_ENC, FCOR_D_DESC; 274804200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanan 274904200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanandef FCUEQ_W : FCUEQ_W_ENC, FCUEQ_W_DESC; 275004200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanandef FCUEQ_D : FCUEQ_D_ENC, FCUEQ_D_DESC; 275104200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanan 275204200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanandef FCULE_W : FCULE_W_ENC, FCULE_W_DESC; 275304200f6251401ccf3d07b09b5c4d29006cdf1cfaSean Callanandef FCULE_D : FCULE_D_ENC, FCULE_D_DESC; 27546cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanan 27556cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanandef FCULT_W : FCULT_W_ENC, FCULT_W_DESC; 27566cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanandef FCULT_D : FCULT_D_ENC, FCULT_D_DESC; 27576cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanan 27586cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanandef FCUN_W : FCUN_W_ENC, FCUN_W_DESC; 27596cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanandef FCUN_D : FCUN_D_ENC, FCUN_D_DESC; 27606cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanan 27616cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanandef FCUNE_W : FCUNE_W_ENC, FCUNE_W_DESC; 27626cf6c474742a23e7cb6b4f618bf1de711db90a85Sean Callanandef FCUNE_D : FCUNE_D_ENC, FCUNE_D_DESC; 276324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 276424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FDIV_W : FDIV_W_ENC, FDIV_W_DESC; 276524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FDIV_D : FDIV_D_ENC, FDIV_D_DESC; 2766613b8739a4d489b7f1c571288d5786768c024205Greg Clayton 2767613b8739a4d489b7f1c571288d5786768c024205Greg Claytondef FEXDO_H : FEXDO_H_ENC, FEXDO_H_DESC; 2768613b8739a4d489b7f1c571288d5786768c024205Greg Claytondef FEXDO_W : FEXDO_W_ENC, FEXDO_W_DESC; 2769613b8739a4d489b7f1c571288d5786768c024205Greg Clayton 27705f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Maleadef FEXP2_W : FEXP2_W_ENC, FEXP2_W_DESC; 2771613b8739a4d489b7f1c571288d5786768c024205Greg Claytondef FEXP2_D : FEXP2_D_ENC, FEXP2_D_DESC; 2772613b8739a4d489b7f1c571288d5786768c024205Greg Claytondef FEXP2_W_1_PSEUDO : FEXP2_W_1_PSEUDO_DESC; 2773613b8739a4d489b7f1c571288d5786768c024205Greg Claytondef FEXP2_D_1_PSEUDO : FEXP2_D_1_PSEUDO_DESC; 27742860ba9c531076adc93cb6fe7bbf2933b42ade69Greg Clayton 2775952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Claytondef FEXUPL_W : FEXUPL_W_ENC, FEXUPL_W_DESC; 27762860ba9c531076adc93cb6fe7bbf2933b42ade69Greg Claytondef FEXUPL_D : FEXUPL_D_ENC, FEXUPL_D_DESC; 27775f35a4be95aed0e5b2cb36f7d785bcbfc67284aeDaniel Malea 27782860ba9c531076adc93cb6fe7bbf2933b42ade69Greg Claytondef FEXUPR_W : FEXUPR_W_ENC, FEXUPR_W_DESC; 27792860ba9c531076adc93cb6fe7bbf2933b42ade69Greg Claytondef FEXUPR_D : FEXUPR_D_ENC, FEXUPR_D_DESC; 278021f37ad875d4f50d1b4b3d307e120f6d27103730Jim Ingham 278121f37ad875d4f50d1b4b3d307e120f6d27103730Jim Inghamdef FFINT_S_W : FFINT_S_W_ENC, FFINT_S_W_DESC; 2782613b8739a4d489b7f1c571288d5786768c024205Greg Claytondef FFINT_S_D : FFINT_S_D_ENC, FFINT_S_D_DESC; 27832860ba9c531076adc93cb6fe7bbf2933b42ade69Greg Clayton 278424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FFINT_U_W : FFINT_U_W_ENC, FFINT_U_W_DESC; 278524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FFINT_U_D : FFINT_U_D_ENC, FFINT_U_D_DESC; 27862529aa356e8cf9c1395da46f66ea2518dfa1982dHan Ming Ong 2787b5a8f1498e1ddaeed5187a878d57ea0b74af9c26Greg Claytondef FFQL_W : FFQL_W_ENC, FFQL_W_DESC; 27889ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef FFQL_D : FFQL_D_ENC, FFQL_D_DESC; 27892ddb2b8aed6d43665c6955255f6a077574a08412Greg Clayton 2790b5a8f1498e1ddaeed5187a878d57ea0b74af9c26Greg Claytondef FFQR_W : FFQR_W_ENC, FFQR_W_DESC; 27916c5438bf1d7af0f0ef1e81a30ad53e3fe93c35a8Greg Claytondef FFQR_D : FFQR_D_ENC, FFQR_D_DESC; 2792b5a8f1498e1ddaeed5187a878d57ea0b74af9c26Greg Clayton 2793b5a8f1498e1ddaeed5187a878d57ea0b74af9c26Greg Claytondef FILL_B : FILL_B_ENC, FILL_B_DESC; 27946c5438bf1d7af0f0ef1e81a30ad53e3fe93c35a8Greg Claytondef FILL_H : FILL_H_ENC, FILL_H_DESC; 27956c5438bf1d7af0f0ef1e81a30ad53e3fe93c35a8Greg Claytondef FILL_W : FILL_W_ENC, FILL_W_DESC; 27966c5438bf1d7af0f0ef1e81a30ad53e3fe93c35a8Greg Claytondef FILL_FW_PSEUDO : FILL_FW_PSEUDO_DESC; 27976c5438bf1d7af0f0ef1e81a30ad53e3fe93c35a8Greg Claytondef FILL_FD_PSEUDO : FILL_FD_PSEUDO_DESC; 2798b5a8f1498e1ddaeed5187a878d57ea0b74af9c26Greg Clayton 27996c5438bf1d7af0f0ef1e81a30ad53e3fe93c35a8Greg Claytondef FLOG2_W : FLOG2_W_ENC, FLOG2_W_DESC; 2800b5a8f1498e1ddaeed5187a878d57ea0b74af9c26Greg Claytondef FLOG2_D : FLOG2_D_ENC, FLOG2_D_DESC; 280124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 280224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMADD_W : FMADD_W_ENC, FMADD_W_DESC; 28039c970a371511a0e31ba9360aa841d445792c1ab0Jim Inghamdef FMADD_D : FMADD_D_ENC, FMADD_D_DESC; 280424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 280524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMAX_W : FMAX_W_ENC, FMAX_W_DESC; 280624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMAX_D : FMAX_D_ENC, FMAX_D_DESC; 280724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 280824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMAX_A_W : FMAX_A_W_ENC, FMAX_A_W_DESC; 280924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMAX_A_D : FMAX_A_D_ENC, FMAX_A_D_DESC; 281024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 28119c970a371511a0e31ba9360aa841d445792c1ab0Jim Inghamdef FMIN_W : FMIN_W_ENC, FMIN_W_DESC; 281224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMIN_D : FMIN_D_ENC, FMIN_D_DESC; 281324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 281424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMIN_A_W : FMIN_A_W_ENC, FMIN_A_W_DESC; 281524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMIN_A_D : FMIN_A_D_ENC, FMIN_A_D_DESC; 281624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 281724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMSUB_W : FMSUB_W_ENC, FMSUB_W_DESC; 281824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMSUB_D : FMSUB_D_ENC, FMSUB_D_DESC; 281924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 282024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMUL_W : FMUL_W_ENC, FMUL_W_DESC; 282124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FMUL_D : FMUL_D_ENC, FMUL_D_DESC; 282224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 282324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FRINT_W : FRINT_W_ENC, FRINT_W_DESC; 282424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FRINT_D : FRINT_D_ENC, FRINT_D_DESC; 282524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 282672e1c782ba1e4226da37af4722af608de9f39408Greg Claytondef FRCP_W : FRCP_W_ENC, FRCP_W_DESC; 282772e1c782ba1e4226da37af4722af608de9f39408Greg Claytondef FRCP_D : FRCP_D_ENC, FRCP_D_DESC; 282872e1c782ba1e4226da37af4722af608de9f39408Greg Clayton 2829202060806d75f812b56a3cfa70d85fff536e5c2fGreg Claytondef FRSQRT_W : FRSQRT_W_ENC, FRSQRT_W_DESC; 283024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FRSQRT_D : FRSQRT_D_ENC, FRSQRT_D_DESC; 283172e1c782ba1e4226da37af4722af608de9f39408Greg Clayton 283272e1c782ba1e4226da37af4722af608de9f39408Greg Claytondef FSAF_W : FSAF_W_ENC, FSAF_W_DESC; 283372e1c782ba1e4226da37af4722af608de9f39408Greg Claytondef FSAF_D : FSAF_D_ENC, FSAF_D_DESC; 283472e1c782ba1e4226da37af4722af608de9f39408Greg Clayton 283572e1c782ba1e4226da37af4722af608de9f39408Greg Claytondef FSEQ_W : FSEQ_W_ENC, FSEQ_W_DESC; 283672e1c782ba1e4226da37af4722af608de9f39408Greg Claytondef FSEQ_D : FSEQ_D_ENC, FSEQ_D_DESC; 283724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 283824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSLE_W : FSLE_W_ENC, FSLE_W_DESC; 283924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSLE_D : FSLE_D_ENC, FSLE_D_DESC; 284024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 284124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSLT_W : FSLT_W_ENC, FSLT_W_DESC; 284224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSLT_D : FSLT_D_ENC, FSLT_D_DESC; 284336bc5ea5a48c19421d44f559e2165c105657b809Greg Clayton 284424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSNE_W : FSNE_W_ENC, FSNE_W_DESC; 284524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSNE_D : FSNE_D_ENC, FSNE_D_DESC; 284624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 284775c703dd8b492bad25a987b96853626641ae7246Greg Claytondef FSOR_W : FSOR_W_ENC, FSOR_W_DESC; 284837f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Claytondef FSOR_D : FSOR_D_ENC, FSOR_D_DESC; 2849861efb3f6e225e45c45511d6da894633b36025a1Caroline Tice 285024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSQRT_W : FSQRT_W_ENC, FSQRT_W_DESC; 28515beb99d65c72cd4a4f7529c4ff8cc04a1a40769dGreg Claytondef FSQRT_D : FSQRT_D_ENC, FSQRT_D_DESC; 285224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 285324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSUB_W : FSUB_W_ENC, FSUB_W_DESC; 2854180546b3feb8c7bcca70a56776a7c4fad99ba09cGreg Claytondef FSUB_D : FSUB_D_ENC, FSUB_D_DESC; 2855180546b3feb8c7bcca70a56776a7c4fad99ba09cGreg Clayton 2856180546b3feb8c7bcca70a56776a7c4fad99ba09cGreg Claytondef FSUEQ_W : FSUEQ_W_ENC, FSUEQ_W_DESC; 2857180546b3feb8c7bcca70a56776a7c4fad99ba09cGreg Claytondef FSUEQ_D : FSUEQ_D_ENC, FSUEQ_D_DESC; 285824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 285924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSULE_W : FSULE_W_ENC, FSULE_W_DESC; 2860a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Claytondef FSULE_D : FSULE_D_ENC, FSULE_D_DESC; 2861a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Clayton 2862a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Claytondef FSULT_W : FSULT_W_ENC, FSULT_W_DESC; 286324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSULT_D : FSULT_D_ENC, FSULT_D_DESC; 286424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 286524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSUN_W : FSUN_W_ENC, FSUN_W_DESC; 28667c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Inghamdef FSUN_D : FSUN_D_ENC, FSUN_D_DESC; 28677c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Ingham 2868ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Claytondef FSUNE_W : FSUNE_W_ENC, FSUNE_W_DESC; 286924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FSUNE_D : FSUNE_D_ENC, FSUNE_D_DESC; 2870cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste 2871777c6b7bf6ee77604942de17fc19c0421603fbe1Greg Claytondef FTINT_S_W : FTINT_S_W_ENC, FTINT_S_W_DESC; 2872777c6b7bf6ee77604942de17fc19c0421603fbe1Greg Claytondef FTINT_S_D : FTINT_S_D_ENC, FTINT_S_D_DESC; 2873777c6b7bf6ee77604942de17fc19c0421603fbe1Greg Clayton 2874777c6b7bf6ee77604942de17fc19c0421603fbe1Greg Claytondef FTINT_U_W : FTINT_U_W_ENC, FTINT_U_W_DESC; 2875777c6b7bf6ee77604942de17fc19c0421603fbe1Greg Claytondef FTINT_U_D : FTINT_U_D_ENC, FTINT_U_D_DESC; 2876777c6b7bf6ee77604942de17fc19c0421603fbe1Greg Clayton 2877777c6b7bf6ee77604942de17fc19c0421603fbe1Greg Claytondef FTQ_H : FTQ_H_ENC, FTQ_H_DESC; 2878777c6b7bf6ee77604942de17fc19c0421603fbe1Greg Claytondef FTQ_W : FTQ_W_ENC, FTQ_W_DESC; 2879777c6b7bf6ee77604942de17fc19c0421603fbe1Greg Clayton 288024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FTRUNC_S_W : FTRUNC_S_W_ENC, FTRUNC_S_W_DESC; 288124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FTRUNC_S_D : FTRUNC_S_D_ENC, FTRUNC_S_D_DESC; 288224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 288324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FTRUNC_U_W : FTRUNC_U_W_ENC, FTRUNC_U_W_DESC; 288424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FTRUNC_U_D : FTRUNC_U_D_ENC, FTRUNC_U_D_DESC; 288524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 288624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef HADD_S_H : HADD_S_H_ENC, HADD_S_H_DESC; 288724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef HADD_S_W : HADD_S_W_ENC, HADD_S_W_DESC; 288824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef HADD_S_D : HADD_S_D_ENC, HADD_S_D_DESC; 288924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 289024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef HADD_U_H : HADD_U_H_ENC, HADD_U_H_DESC; 289124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef HADD_U_W : HADD_U_W_ENC, HADD_U_W_DESC; 289224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef HADD_U_D : HADD_U_D_ENC, HADD_U_D_DESC; 289324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 289424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef HSUB_S_H : HSUB_S_H_ENC, HSUB_S_H_DESC; 28954985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Claytondef HSUB_S_W : HSUB_S_W_ENC, HSUB_S_W_DESC; 28964985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Claytondef HSUB_S_D : HSUB_S_D_ENC, HSUB_S_D_DESC; 28974985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Clayton 28984985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Claytondef HSUB_U_H : HSUB_U_H_ENC, HSUB_U_H_DESC; 289924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef HSUB_U_W : HSUB_U_W_ENC, HSUB_U_W_DESC; 29004985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Claytondef HSUB_U_D : HSUB_U_D_ENC, HSUB_U_D_DESC; 29014985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Clayton 29024985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Claytondef ILVEV_B : ILVEV_B_ENC, ILVEV_B_DESC; 29034985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Claytondef ILVEV_H : ILVEV_H_ENC, ILVEV_H_DESC; 29044985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Claytondef ILVEV_W : ILVEV_W_ENC, ILVEV_W_DESC; 29054985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Claytondef ILVEV_D : ILVEV_D_ENC, ILVEV_D_DESC; 29064985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Clayton 29074985959bb1ce4ce9859cbfdf4c330262d2f250abGreg Claytondef ILVL_B : ILVL_B_ENC, ILVL_B_DESC; 290824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ILVL_H : ILVL_H_ENC, ILVL_H_DESC; 290975c703dd8b492bad25a987b96853626641ae7246Greg Claytondef ILVL_W : ILVL_W_ENC, ILVL_W_DESC; 291024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ILVL_D : ILVL_D_ENC, ILVL_D_DESC; 291124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 29129ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef ILVOD_B : ILVOD_B_ENC, ILVOD_B_DESC; 29139ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef ILVOD_H : ILVOD_H_ENC, ILVOD_H_DESC; 29149ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef ILVOD_W : ILVOD_W_ENC, ILVOD_W_DESC; 291575c703dd8b492bad25a987b96853626641ae7246Greg Claytondef ILVOD_D : ILVOD_D_ENC, ILVOD_D_DESC; 291637f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Clayton 291724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ILVR_B : ILVR_B_ENC, ILVR_B_DESC; 291824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ILVR_H : ILVR_H_ENC, ILVR_H_DESC; 291924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ILVR_W : ILVR_W_ENC, ILVR_W_DESC; 2920a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Claytondef ILVR_D : ILVR_D_ENC, ILVR_D_DESC; 2921a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Clayton 2922a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Claytondef INSERT_B : INSERT_B_ENC, INSERT_B_DESC; 2923a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Claytondef INSERT_H : INSERT_H_ENC, INSERT_H_DESC; 2924a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Claytondef INSERT_W : INSERT_W_ENC, INSERT_W_DESC; 292524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 292624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// INSERT_FW_PSEUDO defined after INSVE_W 292724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// INSERT_FD_PSEUDO defined after INSVE_D 292824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 292924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef INSVE_B : INSVE_B_ENC, INSVE_B_DESC; 293024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef INSVE_H : INSVE_H_ENC, INSVE_H_DESC; 293124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef INSVE_W : INSVE_W_ENC, INSVE_W_DESC; 293224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef INSVE_D : INSVE_D_ENC, INSVE_D_DESC; 293324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 293424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef INSERT_FW_PSEUDO : INSERT_FW_PSEUDO_DESC; 293524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef INSERT_FD_PSEUDO : INSERT_FD_PSEUDO_DESC; 293624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 29379c236733d43e6250c8a5671a438f4a2afeb9c0b2Greg Claytondef LD_B: LD_B_ENC, LD_B_DESC; 293824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef LD_H: LD_H_ENC, LD_H_DESC; 293924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef LD_W: LD_W_ENC, LD_W_DESC; 294024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef LD_D: LD_D_ENC, LD_D_DESC; 294124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 294224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef LDI_B : LDI_B_ENC, LDI_B_DESC; 294346c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef LDI_H : LDI_H_ENC, LDI_H_DESC; 294446c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef LDI_W : LDI_W_ENC, LDI_W_DESC; 294546c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef LDI_D : LDI_D_ENC, LDI_D_DESC; 294646c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Clayton 294746c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef LSA : LSA_ENC, LSA_DESC; 294846c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Clayton 294946c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MADD_Q_H : MADD_Q_H_ENC, MADD_Q_H_DESC; 295046c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MADD_Q_W : MADD_Q_W_ENC, MADD_Q_W_DESC; 295146c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Clayton 295246c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MADDR_Q_H : MADDR_Q_H_ENC, MADDR_Q_H_DESC; 295346c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MADDR_Q_W : MADDR_Q_W_ENC, MADDR_Q_W_DESC; 295446c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Clayton 29559ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef MADDV_B : MADDV_B_ENC, MADDV_B_DESC; 29569ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef MADDV_H : MADDV_H_ENC, MADDV_H_DESC; 29579ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef MADDV_W : MADDV_W_ENC, MADDV_W_DESC; 29589ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef MADDV_D : MADDV_D_ENC, MADDV_D_DESC; 29599ce953807eb814a93b449dc243de4f7bf32c3115Greg Clayton 296046c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MAX_A_B : MAX_A_B_ENC, MAX_A_B_DESC; 296146c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MAX_A_H : MAX_A_H_ENC, MAX_A_H_DESC; 296246c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MAX_A_W : MAX_A_W_ENC, MAX_A_W_DESC; 296346c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MAX_A_D : MAX_A_D_ENC, MAX_A_D_DESC; 296446c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Clayton 296546c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MAX_S_B : MAX_S_B_ENC, MAX_S_B_DESC; 296646c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MAX_S_H : MAX_S_H_ENC, MAX_S_H_DESC; 296746c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MAX_S_W : MAX_S_W_ENC, MAX_S_W_DESC; 296846c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MAX_S_D : MAX_S_D_ENC, MAX_S_D_DESC; 29699ce953807eb814a93b449dc243de4f7bf32c3115Greg Clayton 29709ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef MAX_U_B : MAX_U_B_ENC, MAX_U_B_DESC; 29719ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef MAX_U_H : MAX_U_H_ENC, MAX_U_H_DESC; 29729ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef MAX_U_W : MAX_U_W_ENC, MAX_U_W_DESC; 29739ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef MAX_U_D : MAX_U_D_ENC, MAX_U_D_DESC; 29749ce953807eb814a93b449dc243de4f7bf32c3115Greg Clayton 29759ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef MAXI_S_B : MAXI_S_B_ENC, MAXI_S_B_DESC; 297646c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MAXI_S_H : MAXI_S_H_ENC, MAXI_S_H_DESC; 297746c9a355af9b39db78c006b2a5cbf97d3c58d947Greg Claytondef MAXI_S_W : MAXI_S_W_ENC, MAXI_S_W_DESC; 2978c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef MAXI_S_D : MAXI_S_D_ENC, MAXI_S_D_DESC; 2979c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 298024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef MAXI_U_B : MAXI_U_B_ENC, MAXI_U_B_DESC; 2981c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef MAXI_U_H : MAXI_U_H_ENC, MAXI_U_H_DESC; 2982c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef MAXI_U_W : MAXI_U_W_ENC, MAXI_U_W_DESC; 298324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef MAXI_U_D : MAXI_U_D_ENC, MAXI_U_D_DESC; 29847e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton 2985a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Claytondef MIN_A_B : MIN_A_B_ENC, MIN_A_B_DESC; 29867e2f91cb958c8670774cb2190db7b858618b5b9bGreg Claytondef MIN_A_H : MIN_A_H_ENC, MIN_A_H_DESC; 29877e2f91cb958c8670774cb2190db7b858618b5b9bGreg Claytondef MIN_A_W : MIN_A_W_ENC, MIN_A_W_DESC; 29887e2f91cb958c8670774cb2190db7b858618b5b9bGreg Claytondef MIN_A_D : MIN_A_D_ENC, MIN_A_D_DESC; 29897e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton 29902d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MIN_S_B : MIN_S_B_ENC, MIN_S_B_DESC; 29912d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MIN_S_H : MIN_S_H_ENC, MIN_S_H_DESC; 29927fa7b2f813120a78818246e2d185643a32fa9391Jim Inghamdef MIN_S_W : MIN_S_W_ENC, MIN_S_W_DESC; 29932d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MIN_S_D : MIN_S_D_ENC, MIN_S_D_DESC; 29947c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Ingham 29957c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Inghamdef MIN_U_B : MIN_U_B_ENC, MIN_U_B_DESC; 29967c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Inghamdef MIN_U_H : MIN_U_H_ENC, MIN_U_H_DESC; 29972d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MIN_U_W : MIN_U_W_ENC, MIN_U_W_DESC; 29982d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MIN_U_D : MIN_U_D_ENC, MIN_U_D_DESC; 29992d9adb73af7520bec430e0585ca40467828e6ed1Greg Clayton 30007c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Inghamdef MINI_S_B : MINI_S_B_ENC, MINI_S_B_DESC; 30012d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MINI_S_H : MINI_S_H_ENC, MINI_S_H_DESC; 30022d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MINI_S_W : MINI_S_W_ENC, MINI_S_W_DESC; 30032d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MINI_S_D : MINI_S_D_ENC, MINI_S_D_DESC; 30042d9adb73af7520bec430e0585ca40467828e6ed1Greg Clayton 30052d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MINI_U_B : MINI_U_B_ENC, MINI_U_B_DESC; 30062d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MINI_U_H : MINI_U_H_ENC, MINI_U_H_DESC; 30072d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MINI_U_W : MINI_U_W_ENC, MINI_U_W_DESC; 30082d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MINI_U_D : MINI_U_D_ENC, MINI_U_D_DESC; 30097e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton 30102d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MOD_S_B : MOD_S_B_ENC, MOD_S_B_DESC; 30117e2f91cb958c8670774cb2190db7b858618b5b9bGreg Claytondef MOD_S_H : MOD_S_H_ENC, MOD_S_H_DESC; 30127e2f91cb958c8670774cb2190db7b858618b5b9bGreg Claytondef MOD_S_W : MOD_S_W_ENC, MOD_S_W_DESC; 30137e2f91cb958c8670774cb2190db7b858618b5b9bGreg Claytondef MOD_S_D : MOD_S_D_ENC, MOD_S_D_DESC; 30147e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton 301524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef MOD_U_B : MOD_U_B_ENC, MOD_U_B_DESC; 30162d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MOD_U_H : MOD_U_H_ENC, MOD_U_H_DESC; 30172d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MOD_U_W : MOD_U_W_ENC, MOD_U_W_DESC; 30182d9adb73af7520bec430e0585ca40467828e6ed1Greg Claytondef MOD_U_D : MOD_U_D_ENC, MOD_U_D_DESC; 3019c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 3020c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef MOVE_V : MOVE_V_ENC, MOVE_V_DESC; 3021c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 3022c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef MSUB_Q_H : MSUB_Q_H_ENC, MSUB_Q_H_DESC; 3023c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef MSUB_Q_W : MSUB_Q_W_ENC, MSUB_Q_W_DESC; 3024c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 3025c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef MSUBR_Q_H : MSUBR_Q_H_ENC, MSUBR_Q_H_DESC; 3026c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef MSUBR_Q_W : MSUBR_Q_W_ENC, MSUBR_Q_W_DESC; 3027c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 3028c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef MSUBV_B : MSUBV_B_ENC, MSUBV_B_DESC; 3029c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef MSUBV_H : MSUBV_H_ENC, MSUBV_H_DESC; 3030c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef MSUBV_W : MSUBV_W_ENC, MSUBV_W_DESC; 303124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef MSUBV_D : MSUBV_D_ENC, MSUBV_D_DESC; 303224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 303324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef MUL_Q_H : MUL_Q_H_ENC, MUL_Q_H_DESC; 3034527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef MUL_Q_W : MUL_Q_W_ENC, MUL_Q_W_DESC; 303524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 303624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef MULR_Q_H : MULR_Q_H_ENC, MULR_Q_H_DESC; 3037861efb3f6e225e45c45511d6da894633b36025a1Caroline Ticedef MULR_Q_W : MULR_Q_W_ENC, MULR_Q_W_DESC; 303875c703dd8b492bad25a987b96853626641ae7246Greg Clayton 303937f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Claytondef MULV_B : MULV_B_ENC, MULV_B_DESC; 30407508e732818c32e1cfeaaf7d1d507fe3834ce9d2Jim Inghamdef MULV_H : MULV_H_ENC, MULV_H_DESC; 3041527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef MULV_W : MULV_W_ENC, MULV_W_DESC; 3042e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef MULV_D : MULV_D_ENC, MULV_D_DESC; 3043527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 30447508e732818c32e1cfeaaf7d1d507fe3834ce9d2Jim Inghamdef NLOC_B : NLOC_B_ENC, NLOC_B_DESC; 3045527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef NLOC_H : NLOC_H_ENC, NLOC_H_DESC; 30460d7f7775b6e1e7fd957b306828e9537cdb1e27b2Jim Inghamdef NLOC_W : NLOC_W_ENC, NLOC_W_DESC; 3047527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef NLOC_D : NLOC_D_ENC, NLOC_D_DESC; 3048ea2941843e51df4018bbe9f0f42050964d78d2c0Jim Ingham 3049527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef NLZC_B : NLZC_B_ENC, NLZC_B_DESC; 3050527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef NLZC_H : NLZC_H_ENC, NLZC_H_DESC; 3051527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef NLZC_W : NLZC_W_ENC, NLZC_W_DESC; 3052e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef NLZC_D : NLZC_D_ENC, NLZC_D_DESC; 3053527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 3054527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef NOR_V : NOR_V_ENC, NOR_V_DESC; 3055527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef NOR_V_H_PSEUDO : NOR_V_H_PSEUDO_DESC, 3056cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste PseudoInstExpansion<(NOR_V MSA128BOpnd:$wd, 3057d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Clayton MSA128BOpnd:$ws, 3058d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Clayton MSA128BOpnd:$wt)>; 30597c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Inghamdef NOR_V_W_PSEUDO : NOR_V_W_PSEUDO_DESC, 30607c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Ingham PseudoInstExpansion<(NOR_V MSA128BOpnd:$wd, 3061d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Clayton MSA128BOpnd:$ws, 3062d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Clayton MSA128BOpnd:$wt)>; 3063d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef NOR_V_D_PSEUDO : NOR_V_D_PSEUDO_DESC, 3064d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Clayton PseudoInstExpansion<(NOR_V MSA128BOpnd:$wd, 3065d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Clayton MSA128BOpnd:$ws, 3066d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Clayton MSA128BOpnd:$wt)>; 3067d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Clayton 3068d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef NORI_B : NORI_B_ENC, NORI_B_DESC; 3069ffa43a6bc42bfcccae46eec9cf7bf73f17c328e9Greg Clayton 3070527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef OR_V : OR_V_ENC, OR_V_DESC; 3071527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef OR_V_H_PSEUDO : OR_V_H_PSEUDO_DESC, 3072527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton PseudoInstExpansion<(OR_V MSA128BOpnd:$wd, 3073527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton MSA128BOpnd:$ws, 3074527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton MSA128BOpnd:$wt)>; 3075527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef OR_V_W_PSEUDO : OR_V_W_PSEUDO_DESC, 3076527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton PseudoInstExpansion<(OR_V MSA128BOpnd:$wd, 3077527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton MSA128BOpnd:$ws, 3078527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton MSA128BOpnd:$wt)>; 3079527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef OR_V_D_PSEUDO : OR_V_D_PSEUDO_DESC, 3080527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton PseudoInstExpansion<(OR_V MSA128BOpnd:$wd, 3081527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton MSA128BOpnd:$ws, 3082527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton MSA128BOpnd:$wt)>; 3083527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 3084527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef ORI_B : ORI_B_ENC, ORI_B_DESC; 3085527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 3086527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef PCKEV_B : PCKEV_B_ENC, PCKEV_B_DESC; 3087527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef PCKEV_H : PCKEV_H_ENC, PCKEV_H_DESC; 3088e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef PCKEV_W : PCKEV_W_ENC, PCKEV_W_DESC; 3089527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef PCKEV_D : PCKEV_D_ENC, PCKEV_D_DESC; 3090e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton 3091527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef PCKOD_B : PCKOD_B_ENC, PCKOD_B_DESC; 3092527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef PCKOD_H : PCKOD_H_ENC, PCKOD_H_DESC; 3093527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef PCKOD_W : PCKOD_W_ENC, PCKOD_W_DESC; 3094527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef PCKOD_D : PCKOD_D_ENC, PCKOD_D_DESC; 3095527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 3096527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef PCNT_B : PCNT_B_ENC, PCNT_B_DESC; 3097527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef PCNT_H : PCNT_H_ENC, PCNT_H_DESC; 3098527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef PCNT_W : PCNT_W_ENC, PCNT_W_DESC; 3099527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef PCNT_D : PCNT_D_ENC, PCNT_D_DESC; 3100527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 3101527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SAT_S_B : SAT_S_B_ENC, SAT_S_B_DESC; 3102527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SAT_S_H : SAT_S_H_ENC, SAT_S_H_DESC; 3103527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SAT_S_W : SAT_S_W_ENC, SAT_S_W_DESC; 3104527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SAT_S_D : SAT_S_D_ENC, SAT_S_D_DESC; 3105527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 3106527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SAT_U_B : SAT_U_B_ENC, SAT_U_B_DESC; 3107527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SAT_U_H : SAT_U_H_ENC, SAT_U_H_DESC; 3108527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SAT_U_W : SAT_U_W_ENC, SAT_U_W_DESC; 3109527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SAT_U_D : SAT_U_D_ENC, SAT_U_D_DESC; 3110527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 3111527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SHF_B : SHF_B_ENC, SHF_B_DESC; 3112527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SHF_H : SHF_H_ENC, SHF_H_DESC; 3113527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SHF_W : SHF_W_ENC, SHF_W_DESC; 3114527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 3115527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SLD_B : SLD_B_ENC, SLD_B_DESC; 3116527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SLD_H : SLD_H_ENC, SLD_H_DESC; 3117527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SLD_W : SLD_W_ENC, SLD_W_DESC; 3118527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SLD_D : SLD_D_ENC, SLD_D_DESC; 3119527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 3120e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef SLDI_B : SLDI_B_ENC, SLDI_B_DESC; 3121e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef SLDI_H : SLDI_H_ENC, SLDI_H_DESC; 3122e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef SLDI_W : SLDI_W_ENC, SLDI_W_DESC; 3123527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SLDI_D : SLDI_D_ENC, SLDI_D_DESC; 3124527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 3125ea2941843e51df4018bbe9f0f42050964d78d2c0Jim Inghamdef SLL_B : SLL_B_ENC, SLL_B_DESC; 31267508e732818c32e1cfeaaf7d1d507fe3834ce9d2Jim Inghamdef SLL_H : SLL_H_ENC, SLL_H_DESC; 3127527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SLL_W : SLL_W_ENC, SLL_W_DESC; 3128527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SLL_D : SLL_D_ENC, SLL_D_DESC; 312924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3130527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SLLI_B : SLLI_B_ENC, SLLI_B_DESC; 3131e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef SLLI_H : SLLI_H_ENC, SLLI_H_DESC; 313224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef SLLI_W : SLLI_W_ENC, SLLI_W_DESC; 3133527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SLLI_D : SLLI_D_ENC, SLLI_D_DESC; 3134cf88b95d435873bd312e716da5701cf3882c5da4Ed Maste 3135d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef SPLAT_B : SPLAT_B_ENC, SPLAT_B_DESC; 3136d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef SPLAT_H : SPLAT_H_ENC, SPLAT_H_DESC; 3137d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef SPLAT_W : SPLAT_W_ENC, SPLAT_W_DESC; 31387c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Inghamdef SPLAT_D : SPLAT_D_ENC, SPLAT_D_DESC; 31397c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Ingham 3140d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef SPLATI_B : SPLATI_B_ENC, SPLATI_B_DESC; 3141d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef SPLATI_H : SPLATI_H_ENC, SPLATI_H_DESC; 3142d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef SPLATI_W : SPLATI_W_ENC, SPLATI_W_DESC; 3143d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef SPLATI_D : SPLATI_D_ENC, SPLATI_D_DESC; 3144d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Clayton 3145d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef SRA_B : SRA_B_ENC, SRA_B_DESC; 3146d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef SRA_H : SRA_H_ENC, SRA_H_DESC; 3147d34a3b23c8a90f7c32cbb0b7a9e4899bfb7ff53cGreg Claytondef SRA_W : SRA_W_ENC, SRA_W_DESC; 3148527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SRA_D : SRA_D_ENC, SRA_D_DESC; 3149527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 3150527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SRAI_B : SRAI_B_ENC, SRAI_B_DESC; 3151527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SRAI_H : SRAI_H_ENC, SRAI_H_DESC; 3152527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SRAI_W : SRAI_W_ENC, SRAI_W_DESC; 3153527154d8e532f27f25af226c9e1dac607c48b5d1Greg Claytondef SRAI_D : SRAI_D_ENC, SRAI_D_DESC; 3154527154d8e532f27f25af226c9e1dac607c48b5d1Greg Clayton 315524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef SRAR_B : SRAR_B_ENC, SRAR_B_DESC; 3156e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef SRAR_H : SRAR_H_ENC, SRAR_H_DESC; 3157e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef SRAR_W : SRAR_W_ENC, SRAR_W_DESC; 3158e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef SRAR_D : SRAR_D_ENC, SRAR_D_DESC; 3159e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton 3160e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef SRARI_B : SRARI_B_ENC, SRARI_B_DESC; 3161e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef SRARI_H : SRARI_H_ENC, SRARI_H_DESC; 316224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef SRARI_W : SRARI_W_ENC, SRARI_W_DESC; 3163e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef SRARI_D : SRARI_D_ENC, SRARI_D_DESC; 3164e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton 3165e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytondef SRL_B : SRL_B_ENC, SRL_B_DESC; 316624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef SRL_H : SRL_H_ENC, SRL_H_DESC; 316724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef SRL_W : SRL_W_ENC, SRL_W_DESC; 316824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef SRL_D : SRL_D_ENC, SRL_D_DESC; 316924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 317024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef SRLI_B : SRLI_B_ENC, SRLI_B_DESC; 317175c703dd8b492bad25a987b96853626641ae7246Greg Claytondef SRLI_H : SRLI_H_ENC, SRLI_H_DESC; 317275c703dd8b492bad25a987b96853626641ae7246Greg Claytondef SRLI_W : SRLI_W_ENC, SRLI_W_DESC; 317375c703dd8b492bad25a987b96853626641ae7246Greg Claytondef SRLI_D : SRLI_D_ENC, SRLI_D_DESC; 317475c703dd8b492bad25a987b96853626641ae7246Greg Clayton 317575c703dd8b492bad25a987b96853626641ae7246Greg Claytondef SRLR_B : SRLR_B_ENC, SRLR_B_DESC; 317675c703dd8b492bad25a987b96853626641ae7246Greg Claytondef SRLR_H : SRLR_H_ENC, SRLR_H_DESC; 317775c703dd8b492bad25a987b96853626641ae7246Greg Claytondef SRLR_W : SRLR_W_ENC, SRLR_W_DESC; 31780d7f7775b6e1e7fd957b306828e9537cdb1e27b2Jim Inghamdef SRLR_D : SRLR_D_ENC, SRLR_D_DESC; 31790d7f7775b6e1e7fd957b306828e9537cdb1e27b2Jim Ingham 31800d7f7775b6e1e7fd957b306828e9537cdb1e27b2Jim Inghamdef SRLRI_B : SRLRI_B_ENC, SRLRI_B_DESC; 31810d7f7775b6e1e7fd957b306828e9537cdb1e27b2Jim Inghamdef SRLRI_H : SRLRI_H_ENC, SRLRI_H_DESC; 31820d7f7775b6e1e7fd957b306828e9537cdb1e27b2Jim Inghamdef SRLRI_W : SRLRI_W_ENC, SRLRI_W_DESC; 31830d7f7775b6e1e7fd957b306828e9537cdb1e27b2Jim Inghamdef SRLRI_D : SRLRI_D_ENC, SRLRI_D_DESC; 3184b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Clayton 3185aad2b0f2e5da0ecbf22ab7fead4c06671f64c6c5Greg Claytondef ST_B: ST_B_ENC, ST_B_DESC; 3186b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef ST_H: ST_H_ENC, ST_H_DESC; 3187b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef ST_W: ST_W_ENC, ST_W_DESC; 3188b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef ST_D: ST_D_ENC, ST_D_DESC; 3189b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Clayton 3190b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef SUBS_S_B : SUBS_S_B_ENC, SUBS_S_B_DESC; 3191b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef SUBS_S_H : SUBS_S_H_ENC, SUBS_S_H_DESC; 3192b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef SUBS_S_W : SUBS_S_W_ENC, SUBS_S_W_DESC; 3193b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef SUBS_S_D : SUBS_S_D_ENC, SUBS_S_D_DESC; 3194b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Clayton 3195b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef SUBS_U_B : SUBS_U_B_ENC, SUBS_U_B_DESC; 3196b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef SUBS_U_H : SUBS_U_H_ENC, SUBS_U_H_DESC; 3197b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef SUBS_U_W : SUBS_U_W_ENC, SUBS_U_W_DESC; 3198b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef SUBS_U_D : SUBS_U_D_ENC, SUBS_U_D_DESC; 3199b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Clayton 320040e278caddf5442776f9408f20d757cc85fe630aSean Callanandef SUBSUS_U_B : SUBSUS_U_B_ENC, SUBSUS_U_B_DESC; 3201b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef SUBSUS_U_H : SUBSUS_U_H_ENC, SUBSUS_U_H_DESC; 3202b170aee2daacc83e3d71c3e3acc9d56c89893a7bGreg Claytondef SUBSUS_U_W : SUBSUS_U_W_ENC, SUBSUS_U_W_DESC; 32030d7f7775b6e1e7fd957b306828e9537cdb1e27b2Jim Inghamdef SUBSUS_U_D : SUBSUS_U_D_ENC, SUBSUS_U_D_DESC; 32040d7f7775b6e1e7fd957b306828e9537cdb1e27b2Jim Ingham 32050d7f7775b6e1e7fd957b306828e9537cdb1e27b2Jim Inghamdef SUBSUU_S_B : SUBSUU_S_B_ENC, SUBSUU_S_B_DESC; 320675c703dd8b492bad25a987b96853626641ae7246Greg Claytondef SUBSUU_S_H : SUBSUU_S_H_ENC, SUBSUU_S_H_DESC; 32079ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef SUBSUU_S_W : SUBSUU_S_W_ENC, SUBSUU_S_W_DESC; 32089ce953807eb814a93b449dc243de4f7bf32c3115Greg Claytondef SUBSUU_S_D : SUBSUU_S_D_ENC, SUBSUU_S_D_DESC; 32099ce953807eb814a93b449dc243de4f7bf32c3115Greg Clayton 321075c703dd8b492bad25a987b96853626641ae7246Greg Claytondef SUBV_B : SUBV_B_ENC, SUBV_B_DESC; 321137f962e785be99dc4f0c5e9d02416992ff03bbd0Greg Claytondef SUBV_H : SUBV_H_ENC, SUBV_H_DESC; 321275c703dd8b492bad25a987b96853626641ae7246Greg Claytondef SUBV_W : SUBV_W_ENC, SUBV_W_DESC; 3213146d9522c95c0c8c5409539813b55e08b99196eeEnrico Granatadef SUBV_D : SUBV_D_ENC, SUBV_D_DESC; 32149336790a758b8f8b87d95e6658bb8fdb34766c2fJim Ingham 32159336790a758b8f8b87d95e6658bb8fdb34766c2fJim Inghamdef SUBVI_B : SUBVI_B_ENC, SUBVI_B_DESC; 32169336790a758b8f8b87d95e6658bb8fdb34766c2fJim Inghamdef SUBVI_H : SUBVI_H_ENC, SUBVI_H_DESC; 321775c703dd8b492bad25a987b96853626641ae7246Greg Claytondef SUBVI_W : SUBVI_W_ENC, SUBVI_W_DESC; 32183e11c7ec050648ba865f1d451f8cb46fd39072a8Andy Gibbsdef SUBVI_D : SUBVI_D_ENC, SUBVI_D_DESC; 321975c703dd8b492bad25a987b96853626641ae7246Greg Clayton 32209336790a758b8f8b87d95e6658bb8fdb34766c2fJim Inghamdef VSHF_B : VSHF_B_ENC, VSHF_B_DESC; 3221b72d0f098e45936fa72e26b1a026c603e17e2d6cGreg Claytondef VSHF_H : VSHF_H_ENC, VSHF_H_DESC; 322275c703dd8b492bad25a987b96853626641ae7246Greg Claytondef VSHF_W : VSHF_W_ENC, VSHF_W_DESC; 32235beb99d65c72cd4a4f7529c4ff8cc04a1a40769dGreg Claytondef VSHF_D : VSHF_D_ENC, VSHF_D_DESC; 32249336790a758b8f8b87d95e6658bb8fdb34766c2fJim Ingham 322575c703dd8b492bad25a987b96853626641ae7246Greg Claytondef XOR_V : XOR_V_ENC, XOR_V_DESC; 322675c703dd8b492bad25a987b96853626641ae7246Greg Claytondef XOR_V_H_PSEUDO : XOR_V_H_PSEUDO_DESC, 322775c703dd8b492bad25a987b96853626641ae7246Greg Clayton PseudoInstExpansion<(XOR_V MSA128BOpnd:$wd, 32289336790a758b8f8b87d95e6658bb8fdb34766c2fJim Ingham MSA128BOpnd:$ws, 32299336790a758b8f8b87d95e6658bb8fdb34766c2fJim Ingham MSA128BOpnd:$wt)>; 323075c703dd8b492bad25a987b96853626641ae7246Greg Claytondef XOR_V_W_PSEUDO : XOR_V_W_PSEUDO_DESC, 323175c703dd8b492bad25a987b96853626641ae7246Greg Clayton PseudoInstExpansion<(XOR_V MSA128BOpnd:$wd, 323224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128BOpnd:$ws, 3233fac2e62f08719ba800a440b7ad0d5a55a26dc620Jason Molenda MSA128BOpnd:$wt)>; 3234e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Claytondef XOR_V_D_PSEUDO : XOR_V_D_PSEUDO_DESC, 3235e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Clayton PseudoInstExpansion<(XOR_V MSA128BOpnd:$wd, 3236e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Clayton MSA128BOpnd:$ws, 3237e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Clayton MSA128BOpnd:$wt)>; 3238e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Clayton 3239e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Claytondef XORI_B : XORI_B_ENC, XORI_B_DESC; 3240e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Clayton 3241fac2e62f08719ba800a440b7ad0d5a55a26dc620Jason Molenda// Patterns. 3242e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Claytonclass MSAPat<dag pattern, dag result, list<Predicate> pred = [HasMSA]> : 3243e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Clayton Pat<pattern, result>, Requires<pred>; 3244a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Clayton 3245a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Claytondef : MSAPat<(extractelt (v4i32 MSA128W:$ws), immZExt4:$idx), 324624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton (COPY_S_W MSA128W:$ws, immZExt4:$idx)>; 324724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 324824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(v16i8 (load addr:$addr)), (LD_B addr:$addr)>; 324924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(v8i16 (load addr:$addr)), (LD_H addr:$addr)>; 325024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(v4i32 (load addr:$addr)), (LD_W addr:$addr)>; 325124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(v2i64 (load addr:$addr)), (LD_D addr:$addr)>; 325224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(v8f16 (load addr:$addr)), (LD_H addr:$addr)>; 325324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(v4f32 (load addr:$addr)), (LD_W addr:$addr)>; 325424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(v2f64 (load addr:$addr)), (LD_D addr:$addr)>; 325524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 325624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(v8f16 (load addrRegImm:$addr)), (LD_H addrRegImm:$addr)>; 325724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(v4f32 (load addrRegImm:$addr)), (LD_W addrRegImm:$addr)>; 325824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(v2f64 (load addrRegImm:$addr)), (LD_D addrRegImm:$addr)>; 325924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 3260a2f7423310044cf76d8d52aa9153b7fd8b226b49Greg Claytondef : MSAPat<(store (v16i8 MSA128B:$ws), addr:$addr), 326124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton (ST_B MSA128B:$ws, addr:$addr)>; 326224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(store (v8i16 MSA128H:$ws), addr:$addr), 326324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton (ST_H MSA128H:$ws, addr:$addr)>; 326424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytondef : MSAPat<(store (v4i32 MSA128W:$ws), addr:$addr), 326524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton (ST_W MSA128W:$ws, addr:$addr)>; 3266e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Claytondef : MSAPat<(store (v2i64 MSA128D:$ws), addr:$addr), 3267e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Clayton (ST_D MSA128D:$ws, addr:$addr)>; 3268e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Claytondef : MSAPat<(store (v8f16 MSA128H:$ws), addr:$addr), 3269e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Clayton (ST_H MSA128H:$ws, addr:$addr)>; 3270e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Claytondef : MSAPat<(store (v4f32 MSA128W:$ws), addr:$addr), 3271e71e258286a1713dbb2d366d8b81ff2f28e0216fGreg Clayton (ST_W MSA128W:$ws, addr:$addr)>; 3272027aaa74a914823ab4c9cf8f3274d179e97fdb53Jim Inghamdef : MSAPat<(store (v2f64 MSA128D:$ws), addr:$addr), 327324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner (ST_D MSA128D:$ws, addr:$addr)>; 3274952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton 327524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef ST_FH : MSAPat<(store (v8f16 MSA128H:$ws), addrRegImm:$addr), 327689e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Ingham (ST_H MSA128H:$ws, addrRegImm:$addr)>; 327721f37ad875d4f50d1b4b3d307e120f6d27103730Jim Inghamdef ST_FW : MSAPat<(store (v4f32 MSA128W:$ws), addrRegImm:$addr), 3278ac95966f900e8af29c25b3bd85b3d41cd4568857Jim Ingham (ST_W MSA128W:$ws, addrRegImm:$addr)>; 3279ac95966f900e8af29c25b3bd85b3d41cd4568857Jim Inghamdef ST_FD : MSAPat<(store (v2f64 MSA128D:$ws), addrRegImm:$addr), 328024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner (ST_D MSA128D:$ws, addrRegImm:$addr)>; 328124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 328224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSA_FABS_PSEUDO_DESC_BASE<RegisterOperand ROWD, 328324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner RegisterOperand ROWS = ROWD, 328424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass itin = NoItinerary> : 32859c11d478f7c2a1611b591cd599782b7a0a8c5c37Johnny Chen MipsPseudo<(outs ROWD:$wd), 328624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner (ins ROWS:$ws), 328724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner [(set ROWD:$wd, (fabs ROWS:$ws))]> { 328824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner InstrItinClass Itinerary = itin; 328924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 329024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FABS_W : MSA_FABS_PSEUDO_DESC_BASE<MSA128WOpnd>, 329124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner PseudoInstExpansion<(FMAX_A_W MSA128WOpnd:$wd, MSA128WOpnd:$ws, 32927c79a27b955432dfd3ad9439640f0af2eccf37b8Jim Ingham MSA128WOpnd:$ws)>; 329324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef FABS_D : MSA_FABS_PSEUDO_DESC_BASE<MSA128DOpnd>, 329424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner PseudoInstExpansion<(FMAX_A_D MSA128DOpnd:$wd, MSA128DOpnd:$ws, 32951831e78a6253392fca1c99e555e7adaa3f372647Jim Ingham MSA128DOpnd:$ws)>; 32961831e78a6253392fca1c99e555e7adaa3f372647Jim Ingham 329724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass MSABitconvertPat<ValueType DstVT, ValueType SrcVT, 329889e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Ingham RegisterClass DstRC, list<Predicate> preds = [HasMSA]> : 32991831e78a6253392fca1c99e555e7adaa3f372647Jim Ingham MSAPat<(DstVT (bitconvert SrcVT:$src)), 33001831e78a6253392fca1c99e555e7adaa3f372647Jim Ingham (COPY_TO_REGCLASS SrcVT:$src, DstRC), preds>; 33011831e78a6253392fca1c99e555e7adaa3f372647Jim Ingham 33021831e78a6253392fca1c99e555e7adaa3f372647Jim Ingham// These are endian-independant because the element size doesnt change 33031831e78a6253392fca1c99e555e7adaa3f372647Jim Inghamdef : MSABitconvertPat<v8i16, v8f16, MSA128H>; 33041831e78a6253392fca1c99e555e7adaa3f372647Jim Inghamdef : MSABitconvertPat<v4i32, v4f32, MSA128W>; 33051831e78a6253392fca1c99e555e7adaa3f372647Jim Inghamdef : MSABitconvertPat<v2i64, v2f64, MSA128D>; 33061831e78a6253392fca1c99e555e7adaa3f372647Jim Inghamdef : MSABitconvertPat<v8f16, v8i16, MSA128H>; 33071831e78a6253392fca1c99e555e7adaa3f372647Jim Inghamdef : MSABitconvertPat<v4f32, v4i32, MSA128W>; 33081831e78a6253392fca1c99e555e7adaa3f372647Jim Inghamdef : MSABitconvertPat<v2f64, v2i64, MSA128D>; 33091831e78a6253392fca1c99e555e7adaa3f372647Jim Ingham 33101831e78a6253392fca1c99e555e7adaa3f372647Jim Ingham// Little endian bitcasts are always no-ops 331124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertPat<v16i8, v8i16, MSA128B, [HasMSA, IsLE]>; 331224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertPat<v16i8, v4i32, MSA128B, [HasMSA, IsLE]>; 331324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertPat<v16i8, v2i64, MSA128B, [HasMSA, IsLE]>; 331424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertPat<v16i8, v8f16, MSA128B, [HasMSA, IsLE]>; 33150c8fa2d7dd18ae1816c82846234c45f79142e3dfJim Inghamdef : MSABitconvertPat<v16i8, v4f32, MSA128B, [HasMSA, IsLE]>; 33160c8fa2d7dd18ae1816c82846234c45f79142e3dfJim Inghamdef : MSABitconvertPat<v16i8, v2f64, MSA128B, [HasMSA, IsLE]>; 33170c8fa2d7dd18ae1816c82846234c45f79142e3dfJim Ingham 33180c8fa2d7dd18ae1816c82846234c45f79142e3dfJim Inghamdef : MSABitconvertPat<v8i16, v16i8, MSA128H, [HasMSA, IsLE]>; 33190c8fa2d7dd18ae1816c82846234c45f79142e3dfJim Inghamdef : MSABitconvertPat<v8i16, v4i32, MSA128H, [HasMSA, IsLE]>; 33200c8fa2d7dd18ae1816c82846234c45f79142e3dfJim Inghamdef : MSABitconvertPat<v8i16, v2i64, MSA128H, [HasMSA, IsLE]>; 33210c8fa2d7dd18ae1816c82846234c45f79142e3dfJim Inghamdef : MSABitconvertPat<v8i16, v4f32, MSA128H, [HasMSA, IsLE]>; 332224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertPat<v8i16, v2f64, MSA128H, [HasMSA, IsLE]>; 332324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3324ac95966f900e8af29c25b3bd85b3d41cd4568857Jim Inghamdef : MSABitconvertPat<v4i32, v16i8, MSA128W, [HasMSA, IsLE]>; 332589e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Inghamdef : MSABitconvertPat<v4i32, v8i16, MSA128W, [HasMSA, IsLE]>; 332624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertPat<v4i32, v2i64, MSA128W, [HasMSA, IsLE]>; 332724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertPat<v4i32, v8f16, MSA128W, [HasMSA, IsLE]>; 332824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertPat<v4i32, v2f64, MSA128W, [HasMSA, IsLE]>; 332924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3330addad59552c206466dea98c4a645a471a41252b4Greg Claytondef : MSABitconvertPat<v2i64, v16i8, MSA128D, [HasMSA, IsLE]>; 333124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertPat<v2i64, v8i16, MSA128D, [HasMSA, IsLE]>; 3332addad59552c206466dea98c4a645a471a41252b4Greg Claytondef : MSABitconvertPat<v2i64, v4i32, MSA128D, [HasMSA, IsLE]>; 3333addad59552c206466dea98c4a645a471a41252b4Greg Claytondef : MSABitconvertPat<v2i64, v8f16, MSA128D, [HasMSA, IsLE]>; 3334addad59552c206466dea98c4a645a471a41252b4Greg Claytondef : MSABitconvertPat<v2i64, v4f32, MSA128D, [HasMSA, IsLE]>; 3335addad59552c206466dea98c4a645a471a41252b4Greg Clayton 3336addad59552c206466dea98c4a645a471a41252b4Greg Claytondef : MSABitconvertPat<v4f32, v16i8, MSA128W, [HasMSA, IsLE]>; 33374389256aecd2693109969c21fa2f00c4612320b3Jim Inghamdef : MSABitconvertPat<v4f32, v8i16, MSA128W, [HasMSA, IsLE]>; 33384389256aecd2693109969c21fa2f00c4612320b3Jim Inghamdef : MSABitconvertPat<v4f32, v2i64, MSA128W, [HasMSA, IsLE]>; 33394389256aecd2693109969c21fa2f00c4612320b3Jim Inghamdef : MSABitconvertPat<v4f32, v8f16, MSA128W, [HasMSA, IsLE]>; 33404389256aecd2693109969c21fa2f00c4612320b3Jim Inghamdef : MSABitconvertPat<v4f32, v2f64, MSA128W, [HasMSA, IsLE]>; 33414389256aecd2693109969c21fa2f00c4612320b3Jim Ingham 3342c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertPat<v2f64, v16i8, MSA128D, [HasMSA, IsLE]>; 3343c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertPat<v2f64, v8i16, MSA128D, [HasMSA, IsLE]>; 3344f9f40c20b210eea72ab042c63178ca000f005ed9Jim Inghamdef : MSABitconvertPat<v2f64, v4i32, MSA128D, [HasMSA, IsLE]>; 3345f9f40c20b210eea72ab042c63178ca000f005ed9Jim Inghamdef : MSABitconvertPat<v2f64, v8f16, MSA128D, [HasMSA, IsLE]>; 3346c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertPat<v2f64, v4f32, MSA128D, [HasMSA, IsLE]>; 3347c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 33487e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton// Big endian bitcasts expand to shuffle instructions. 334924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This is because bitcast is defined to be a store/load sequence and the 33507e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton// vector store/load instructions are mixed-endian with respect to the vector 3351c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham// as a whole (little endian with respect to element order, but big endian 335220d338fad87eba91de65aa9bec76e01c04472848Greg Clayton// elements). 33537e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton 33547e2f91cb958c8670774cb2190db7b858618b5b9bGreg Claytonclass MSABitconvertReverseQuartersPat<ValueType DstVT, ValueType SrcVT, 33557e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton RegisterClass DstRC, MSAInst Insn, 33567e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton RegisterClass ViaRC> : 335724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSAPat<(DstVT (bitconvert SrcVT:$src)), 33583ae449a5c3b4f51afc0da22cfeaef00c303c0accJim Ingham (COPY_TO_REGCLASS (Insn (COPY_TO_REGCLASS SrcVT:$src, ViaRC), 27), 33597e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton DstRC), 33607e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton [HasMSA, IsBE]>; 33617e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton 33627e2f91cb958c8670774cb2190db7b858618b5b9bGreg Claytonclass MSABitconvertReverseHalvesPat<ValueType DstVT, ValueType SrcVT, 33637e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton RegisterClass DstRC, MSAInst Insn, 33647e2f91cb958c8670774cb2190db7b858618b5b9bGreg Clayton RegisterClass ViaRC> : 33653ae449a5c3b4f51afc0da22cfeaef00c303c0accJim Ingham MSAPat<(DstVT (bitconvert SrcVT:$src)), 3366c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham (COPY_TO_REGCLASS (Insn (COPY_TO_REGCLASS SrcVT:$src, ViaRC), 177), 3367c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham DstRC), 3368c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham [HasMSA, IsBE]>; 3369c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 3370c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamclass MSABitconvertReverseBInHPat<ValueType DstVT, ValueType SrcVT, 3371c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham RegisterClass DstRC> : 3372c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham MSABitconvertReverseHalvesPat<DstVT, SrcVT, DstRC, SHF_B, MSA128B>; 337320d338fad87eba91de65aa9bec76e01c04472848Greg Clayton 3374f9f40c20b210eea72ab042c63178ca000f005ed9Jim Inghamclass MSABitconvertReverseBInWPat<ValueType DstVT, ValueType SrcVT, 3375c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham RegisterClass DstRC> : 3376c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham MSABitconvertReverseQuartersPat<DstVT, SrcVT, DstRC, SHF_B, MSA128B>; 3377c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 3378f9f40c20b210eea72ab042c63178ca000f005ed9Jim Inghamclass MSABitconvertReverseBInDPat<ValueType DstVT, ValueType SrcVT, 3379f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham RegisterClass DstRC> : 3380c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham MSAPat<(DstVT (bitconvert SrcVT:$src)), 3381f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham (COPY_TO_REGCLASS 338220d338fad87eba91de65aa9bec76e01c04472848Greg Clayton (SHF_W 3383c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham (COPY_TO_REGCLASS 3384f9f40c20b210eea72ab042c63178ca000f005ed9Jim Ingham (SHF_B (COPY_TO_REGCLASS SrcVT:$src, MSA128B), 27), 338520d338fad87eba91de65aa9bec76e01c04472848Greg Clayton MSA128W), 177), 338620d338fad87eba91de65aa9bec76e01c04472848Greg Clayton DstRC), 338720d338fad87eba91de65aa9bec76e01c04472848Greg Clayton [HasMSA, IsBE]>; 3388202060806d75f812b56a3cfa70d85fff536e5c2fGreg Clayton 3389c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamclass MSABitconvertReverseHInWPat<ValueType DstVT, ValueType SrcVT, 3390c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham RegisterClass DstRC> : 3391c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham MSABitconvertReverseHalvesPat<DstVT, SrcVT, DstRC, SHF_H, MSA128H>; 3392c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 3393c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamclass MSABitconvertReverseHInDPat<ValueType DstVT, ValueType SrcVT, 3394c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham RegisterClass DstRC> : 3395c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham MSABitconvertReverseQuartersPat<DstVT, SrcVT, DstRC, SHF_H, MSA128H>; 3396c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 3397952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Claytonclass MSABitconvertReverseWInDPat<ValueType DstVT, ValueType SrcVT, 3398c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham RegisterClass DstRC> : 3399c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham MSABitconvertReverseHalvesPat<DstVT, SrcVT, DstRC, SHF_W, MSA128W>; 3400c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 3401c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertReverseBInHPat<v8i16, v16i8, MSA128H>; 340220d338fad87eba91de65aa9bec76e01c04472848Greg Claytondef : MSABitconvertReverseBInHPat<v8f16, v16i8, MSA128H>; 340320d338fad87eba91de65aa9bec76e01c04472848Greg Claytondef : MSABitconvertReverseBInWPat<v4i32, v16i8, MSA128W>; 3404c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertReverseBInWPat<v4f32, v16i8, MSA128W>; 3405c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertReverseBInDPat<v2i64, v16i8, MSA128D>; 34063ae449a5c3b4f51afc0da22cfeaef00c303c0accJim Inghamdef : MSABitconvertReverseBInDPat<v2f64, v16i8, MSA128D>; 3407c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 3408c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertReverseBInHPat<v16i8, v8i16, MSA128B>; 3409f9f40c20b210eea72ab042c63178ca000f005ed9Jim Inghamdef : MSABitconvertReverseHInWPat<v4i32, v8i16, MSA128W>; 341020d338fad87eba91de65aa9bec76e01c04472848Greg Claytondef : MSABitconvertReverseHInWPat<v4f32, v8i16, MSA128W>; 3411c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertReverseHInDPat<v2i64, v8i16, MSA128D>; 3412c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertReverseHInDPat<v2f64, v8i16, MSA128D>; 3413c2dc7c88cebe05cce059970cc907768256b28a42Jim Ingham 3414c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertReverseBInHPat<v16i8, v8f16, MSA128B>; 3415c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertReverseHInWPat<v4i32, v8f16, MSA128W>; 3416c2dc7c88cebe05cce059970cc907768256b28a42Jim Inghamdef : MSABitconvertReverseHInWPat<v4f32, v8f16, MSA128W>; 341720d338fad87eba91de65aa9bec76e01c04472848Greg Claytondef : MSABitconvertReverseHInDPat<v2i64, v8f16, MSA128D>; 341824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertReverseHInDPat<v2f64, v8f16, MSA128D>; 341924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 342024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertReverseBInWPat<v16i8, v4i32, MSA128B>; 342124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerdef : MSABitconvertReverseHInWPat<v8i16, v4i32, MSA128H>; 3422e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseHInWPat<v8f16, v4i32, MSA128H>; 3423e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseWInDPat<v2i64, v4i32, MSA128D>; 3424e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseWInDPat<v2f64, v4i32, MSA128D>; 3425e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham 3426e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseBInWPat<v16i8, v4f32, MSA128B>; 3427e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseHInWPat<v8i16, v4f32, MSA128H>; 3428e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseHInWPat<v8f16, v4f32, MSA128H>; 3429e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseWInDPat<v2i64, v4f32, MSA128D>; 3430e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseWInDPat<v2f64, v4f32, MSA128D>; 3431e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham 3432e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseBInDPat<v16i8, v2i64, MSA128B>; 3433e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseHInDPat<v8i16, v2i64, MSA128H>; 3434e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseHInDPat<v8f16, v2i64, MSA128H>; 3435e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseWInDPat<v4i32, v2i64, MSA128W>; 3436e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseWInDPat<v4f32, v2i64, MSA128W>; 3437e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham 3438e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseBInDPat<v16i8, v2f64, MSA128B>; 3439e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseHInDPat<v8i16, v2f64, MSA128H>; 3440e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseHInDPat<v8f16, v2f64, MSA128H>; 3441e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseWInDPat<v4i32, v2f64, MSA128W>; 3442e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef : MSABitconvertReverseWInDPat<v4f32, v2f64, MSA128W>; 3443e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham 3444e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham// Pseudos used to implement BNZ.df, and BZ.df 3445e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham 3446e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamclass MSA_CBRANCH_PSEUDO_DESC_BASE<SDPatternOperator OpNode, ValueType TyNode, 3447e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham RegisterClass RCWS, 3448e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham InstrItinClass itin = NoItinerary> : 3449e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham MipsPseudo<(outs GPR32:$dst), 3450e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham (ins RCWS:$ws), 3451e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham [(set GPR32:$dst, (OpNode (TyNode RCWS:$ws)))]> { 3452e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham bit usesCustomInserter = 1; 3453e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham} 3454e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham 3455e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef SNZ_B_PSEUDO : MSA_CBRANCH_PSEUDO_DESC_BASE<MipsVAllNonZero, v16i8, 3456e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham MSA128B, NoItinerary>; 3457e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef SNZ_H_PSEUDO : MSA_CBRANCH_PSEUDO_DESC_BASE<MipsVAllNonZero, v8i16, 3458e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham MSA128H, NoItinerary>; 3459e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef SNZ_W_PSEUDO : MSA_CBRANCH_PSEUDO_DESC_BASE<MipsVAllNonZero, v4i32, 3460e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham MSA128W, NoItinerary>; 3461e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef SNZ_D_PSEUDO : MSA_CBRANCH_PSEUDO_DESC_BASE<MipsVAllNonZero, v2i64, 3462e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham MSA128D, NoItinerary>; 3463e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef SNZ_V_PSEUDO : MSA_CBRANCH_PSEUDO_DESC_BASE<MipsVAnyNonZero, v16i8, 3464e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham MSA128B, NoItinerary>; 3465e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham 3466e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef SZ_B_PSEUDO : MSA_CBRANCH_PSEUDO_DESC_BASE<MipsVAllZero, v16i8, 3467e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham MSA128B, NoItinerary>; 3468e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef SZ_H_PSEUDO : MSA_CBRANCH_PSEUDO_DESC_BASE<MipsVAllZero, v8i16, 3469e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham MSA128H, NoItinerary>; 3470e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef SZ_W_PSEUDO : MSA_CBRANCH_PSEUDO_DESC_BASE<MipsVAllZero, v4i32, 3471e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham MSA128W, NoItinerary>; 3472e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Inghamdef SZ_D_PSEUDO : MSA_CBRANCH_PSEUDO_DESC_BASE<MipsVAllZero, v2i64, 3473e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham MSA128D, NoItinerary>; 3474761afb822b18c46b2ad84be03f372e90ac1e6143Jim Inghamdef SZ_V_PSEUDO : MSA_CBRANCH_PSEUDO_DESC_BASE<MipsVAnyZero, v16i8, 347524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner MSA128B, NoItinerary>; 3476e33bb5b0dabf62498715afe3d1cd22cda0af1d24Jim Ingham