From 6e31ab388acda933fa0dc91041da83250b3596de Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Wed, 19 Oct 2016 13:03:18 +0000 Subject: [PATCH] [SystemZ] Add missing vector instructions for the assembler Most z13 vector instructions have a base form where the data type of the operation (whether to consider the vector to be 16 bytes, 8 halfwords, 4 words, or 2 doublewords) is encoded into a mask field, and then a set of extended mnemonics where the mask field is not present but the data type is encoded into the mnemonic name. Currently, LLVM only supports the type-specific forms (since those are really the ones needed for code generation), but not the base type-generic forms. To complete the assembler support and make it fully compatible with the GNU assembler, this commit adds assembler aliases for all the base forms of the various vector instructions. It also adds two more alias forms that are documented in the PoP: VFPSO/VFPSODB/WFPSODB -- generic form of VFLCDB etc. VNOT -- special variant of VNO llvm-svn: 284586 --- llvm/lib/Target/SystemZ/SystemZInstrFormats.td | 183 ++- llvm/lib/Target/SystemZ/SystemZInstrVector.td | 109 +- llvm/test/MC/Disassembler/SystemZ/insns-z13.txt | 888 ++++++++++++ llvm/test/MC/SystemZ/insn-bad-z13.s | 442 +++++- llvm/test/MC/SystemZ/insn-good-z13.s | 1633 ++++++++++++++++++++++- 5 files changed, 3237 insertions(+), 18 deletions(-) diff --git a/llvm/lib/Target/SystemZ/SystemZInstrFormats.td b/llvm/lib/Target/SystemZ/SystemZInstrFormats.td index 4b63f22..ba5c2d2 100644 --- a/llvm/lib/Target/SystemZ/SystemZInstrFormats.td +++ b/llvm/lib/Target/SystemZ/SystemZInstrFormats.td @@ -1759,6 +1759,10 @@ class UnaryVRIa opcode, SDPatternOperator operator, let M3 = type; } +class UnaryVRIaGeneric opcode, Immediate imm> + : InstVRIa; + class UnaryVRRa opcode, SDPatternOperator operator, TypedReg tr1, TypedReg tr2, bits<4> type = 0, bits<4> m4 = 0, bits<4> m5 = 0> @@ -1770,6 +1774,21 @@ class UnaryVRRa opcode, SDPatternOperator operator, let M5 = m5; } +class UnaryVRRaGeneric opcode, bits<4> m4 = 0, + bits<4> m5 = 0> + : InstVRRa { + let M4 = m4; + let M5 = m5; +} + +class UnaryVRRaFloatGeneric opcode, bits<4> m5 = 0> + : InstVRRa { + let M5 = m5; +} + // Declare a pair of instructions, one which sets CC and one which doesn't. // The CC-setting form ends with "S" and sets the low bit of M5. // The form that does not set CC has an extra operand to optionally allow @@ -1791,6 +1810,16 @@ multiclass UnaryExtraVRRaSPair opcode, type, 0, 1>; } +multiclass UnaryExtraVRRaSPairGeneric opcode> { + let M4 = 0 in + def "" : InstVRRa; + def : InstAlias(NAME) VR128:$V1, VR128:$V2, + imm32zx4:$M3, 0)>; +} + class UnaryVRX opcode, SDPatternOperator operator, TypedReg tr, bits<5> bytes, bits<4> type = 0> : InstVRX opcode, SDPatternOperator operator, let AccessBytes = bytes; } +class UnaryVRXGeneric opcode> + : InstVRX { + let mayLoad = 1; +} + class BinaryRR opcode, SDPatternOperator operator, RegisterOperand cls1, RegisterOperand cls2> : InstRR opcode, SDPatternOperator operator, let M4 = type; } +class BinaryVRIbGeneric opcode> + : InstVRIb; + class BinaryVRIc opcode, SDPatternOperator operator, TypedReg tr1, TypedReg tr2, bits<4> type> : InstVRIc opcode, SDPatternOperator operator, let M4 = type; } +class BinaryVRIcGeneric opcode> + : InstVRIc; + class BinaryVRIe opcode, SDPatternOperator operator, TypedReg tr1, TypedReg tr2, bits<4> type, bits<4> m5> : InstVRIe opcode, SDPatternOperator operator, let M5 = m5; } -class BinaryVRRa opcode> - : InstVRRa { - let M4 = 0; - let M5 = 0; +class BinaryVRIeFloatGeneric opcode> + : InstVRIe; + +class BinaryVRRa opcode, SDPatternOperator operator, + TypedReg tr1, TypedReg tr2, bits<4> type = 0, bits<4> m4 = 0> + : InstVRRa { + let M3 = type; + let M4 = m4; } +class BinaryVRRaFloatGeneric opcode> + : InstVRRa; + class BinaryVRRb opcode, SDPatternOperator operator, TypedReg tr1, TypedReg tr2, bits<4> type = 0, bits<4> modifier = 0> @@ -2071,6 +2129,11 @@ multiclass BinaryVRRbSPair opcode, !add (!and (modifier, 14), 1)>; } +class BinaryVRRbSPairGeneric opcode> + : InstVRRb; + // Declare a pair of instructions, one which sets CC and one which doesn't. // The CC-setting form ends with "S" and sets the low bit of M5. // The form that does not set CC has an extra operand to optionally allow @@ -2092,6 +2155,15 @@ multiclass BinaryExtraVRRbSPair opcode, def S : BinaryVRRb; } +multiclass BinaryExtraVRRbSPairGeneric opcode> { + def "" : InstVRRb; + def : InstAlias(NAME) VR128:$V1, VR128:$V2, VR128:$V3, + imm32zx4:$M4, 0)>; +} + class BinaryVRRc opcode, SDPatternOperator operator, TypedReg tr1, TypedReg tr2, bits<4> type = 0, bits<4> m5 = 0, bits<4> m6 = 0> @@ -2104,6 +2176,22 @@ class BinaryVRRc opcode, SDPatternOperator operator, let M6 = m6; } +class BinaryVRRcGeneric opcode, bits<4> m5 = 0, + bits<4> m6 = 0> + : InstVRRc { + let M5 = m5; + let M6 = m6; +} + +class BinaryVRRcFloatGeneric opcode, bits<4> m6 = 0> + : InstVRRc { + let M6 = m6; +} + // Declare a pair of instructions, one which sets CC and one which doesn't. // The CC-setting form ends with "S" and sets the low bit of M5. multiclass BinaryVRRcSPair opcode, @@ -2118,6 +2206,12 @@ multiclass BinaryVRRcSPair opcode, m5, !add (!and (modifier, 14), 1)>; } +class BinaryVRRcSPairFloatGeneric opcode> + : InstVRRc; + class BinaryVRRf opcode, SDPatternOperator operator, TypedReg tr> : InstVRRf opcode, SDPatternOperator operator, let M4 = type; } +class BinaryVRSaGeneric opcode> + : InstVRSa; + class BinaryVRSb opcode, SDPatternOperator operator, bits<5> bytes> : InstVRSb opcode, SDPatternOperator operator, let M4 = type; } +class BinaryVRScGeneric opcode> + : InstVRSc; + class BinaryVRX opcode, SDPatternOperator operator, TypedReg tr, bits<5> bytes> : InstVRX opcode, SDPatternOperator operator, let M5 = 0; } +class CompareVRRaGeneric opcode> + : InstVRRa { + let isCompare = 1; + let M4 = 0; + let M5 = 0; +} + +class CompareVRRaFloatGeneric opcode> + : InstVRRa { + let isCompare = 1; + let M5 = 0; +} + class TestRXE opcode, SDPatternOperator operator, RegisterOperand cls> : InstRXE opcode, SDPatternOperator operator, let M3 = type; } +class TernaryVRRaFloatGeneric opcode> + : InstVRRa; + class TernaryVRRb opcode, SDPatternOperator operator, TypedReg tr1, TypedReg tr2, bits<4> type, SDPatternOperator m5mask, bits<4> m5or> @@ -2467,6 +2592,15 @@ multiclass TernaryOptVRRbSPair opcode, tr2.op:$V3, 0)>; } +multiclass TernaryOptVRRbSPairGeneric opcode> { + def "" : InstVRRb; + def : InstAlias(NAME) VR128:$V1, VR128:$V2, VR128:$V3, + imm32zx4:$M4, 0)>; +} + class TernaryVRRc opcode, SDPatternOperator operator, TypedReg tr1, TypedReg tr2> : InstVRRc opcode, SDPatternOperator operator, let M6 = 0; } +class TernaryVRRdGeneric opcode> + : InstVRRd { + let M6 = 0; +} + class TernaryVRRe opcode, SDPatternOperator operator, TypedReg tr1, TypedReg tr2, bits<4> m5 = 0, bits<4> type = 0> : InstVRRe opcode, SDPatternOperator operator, let M6 = type; } +class TernaryVRReFloatGeneric opcode> + : InstVRRe; + class TernaryVRSb opcode, SDPatternOperator operator, TypedReg tr1, TypedReg tr2, RegisterOperand cls, bits<4> type> : InstVRSb opcode, SDPatternOperator operator, let M4 = type; } +class TernaryVRSbGeneric opcode> + : InstVRSb { + let Constraints = "$V1 = $V1src"; + let DisableEncoding = "$V1src"; +} + class TernaryVRV opcode, bits<5> bytes, Immediate index> : InstVRV opcode, SDPatternOperator operato let M5 = type; } +class QuaternaryVRIdGeneric opcode> + : InstVRId { + let Constraints = "$V1 = $V1src"; + let DisableEncoding = "$V1src"; +} + class QuaternaryVRRd opcode, SDPatternOperator operator, TypedReg tr1, TypedReg tr2, bits<4> type, SDPatternOperator m6mask, bits<4> m6or> @@ -2590,6 +2753,16 @@ multiclass QuaternaryOptVRRdSPair opcode, tr2.op:$V3, tr2.op:$V4, 0)>; } +multiclass QuaternaryOptVRRdSPairGeneric opcode> { + def "" : InstVRRd; + def : InstAlias(NAME) VR128:$V1, VR128:$V2, VR128:$V3, + VR128:$V4, imm32zx4:$M5, 0)>; +} + class LoadAndOpRSY opcode, SDPatternOperator operator, RegisterOperand cls, AddressingMode mode = bdaddr20only> : InstRSY; // Load GR from VR element. + def VLGV : BinaryVRScGeneric<"vlgv", 0xE721>; def VLGVB : BinaryVRSc<"vlgvb", 0xE721, null_frag, v128b, 0>; def VLGVH : BinaryVRSc<"vlgvh", 0xE721, null_frag, v128h, 1>; def VLGVF : BinaryVRSc<"vlgvf", 0xE721, null_frag, v128f, 2>; def VLGVG : BinaryVRSc<"vlgvg", 0xE721, z_vector_extract, v128g, 3>; // Load VR element from GR. + def VLVG : TernaryVRSbGeneric<"vlvg", 0xE722>; def VLVGB : TernaryVRSb<"vlvgb", 0xE722, z_vector_insert, v128b, v128b, GR32, 0>; def VLVGH : TernaryVRSb<"vlvgh", 0xE722, z_vector_insert, @@ -60,6 +62,7 @@ let Predicates = [FeatureVector] in { def VGBM : UnaryVRIa<"vgbm", 0xE744, z_byte_mask, v128b, imm32zx16>; // Generate mask. + def VGM : BinaryVRIbGeneric<"vgm", 0xE746>; def VGMB : BinaryVRIb<"vgmb", 0xE746, z_rotate_mask, v128b, 0>; def VGMH : BinaryVRIb<"vgmh", 0xE746, z_rotate_mask, v128h, 1>; def VGMF : BinaryVRIb<"vgmf", 0xE746, z_rotate_mask, v128f, 2>; @@ -85,6 +88,7 @@ let Predicates = [FeatureVector] in { } // Replicate immediate. + def VREPI : UnaryVRIaGeneric<"vrepi", 0xE745, imm32sx16>; def VREPIB : UnaryVRIa<"vrepib", 0xE745, z_replicate, v128b, imm32sx16, 0>; def VREPIH : UnaryVRIa<"vrepih", 0xE745, z_replicate, v128h, imm32sx16, 1>; def VREPIF : UnaryVRIa<"vrepif", 0xE745, z_replicate, v128f, imm32sx16, 2>; @@ -119,6 +123,7 @@ let Predicates = [FeatureVector] in { def VLM : LoadMultipleVRSa<"vlm", 0xE736>; // Load and replicate + def VLREP : UnaryVRXGeneric<"vlrep", 0xE705>; def VLREPB : UnaryVRX<"vlrepb", 0xE705, z_replicate_loadi8, v128b, 1, 0>; def VLREPH : UnaryVRX<"vlreph", 0xE705, z_replicate_loadi16, v128h, 2, 1>; def VLREPF : UnaryVRX<"vlrepf", 0xE705, z_replicate_loadi32, v128f, 4, 2>; @@ -136,6 +141,7 @@ let Predicates = [FeatureVector] in { def VL64 : UnaryAliasVRX; // Load logical element and zero. + def VLLEZ : UnaryVRXGeneric<"vllez", 0xE704>; def VLLEZB : UnaryVRX<"vllezb", 0xE704, z_vllezi8, v128b, 1, 0>; def VLLEZH : UnaryVRX<"vllezh", 0xE704, z_vllezi16, v128h, 2, 1>; def VLLEZF : UnaryVRX<"vllezf", 0xE704, z_vllezi32, v128f, 4, 2>; @@ -223,6 +229,7 @@ let Predicates = [FeatureVector] in { let Predicates = [FeatureVector] in { // Merge high. + def VMRH: BinaryVRRcGeneric<"vmrh", 0xE761>; def VMRHB : BinaryVRRc<"vmrhb", 0xE761, z_merge_high, v128b, v128b, 0>; def VMRHH : BinaryVRRc<"vmrhh", 0xE761, z_merge_high, v128h, v128h, 1>; def VMRHF : BinaryVRRc<"vmrhf", 0xE761, z_merge_high, v128f, v128f, 2>; @@ -231,6 +238,7 @@ let Predicates = [FeatureVector] in { def : BinaryRRWithType; // Merge low. + def VMRL: BinaryVRRcGeneric<"vmrl", 0xE760>; def VMRLB : BinaryVRRc<"vmrlb", 0xE760, z_merge_low, v128b, v128b, 0>; def VMRLH : BinaryVRRc<"vmrlh", 0xE760, z_merge_low, v128h, v128h, 1>; def VMRLF : BinaryVRRc<"vmrlf", 0xE760, z_merge_low, v128f, v128f, 2>; @@ -245,6 +253,7 @@ let Predicates = [FeatureVector] in { def VPDI : TernaryVRRc<"vpdi", 0xE784, z_permute_dwords, v128g, v128g>; // Replicate. + def VREP: BinaryVRIcGeneric<"vrep", 0xE74D>; def VREPB : BinaryVRIc<"vrepb", 0xE74D, z_splat, v128b, v128b, 0>; def VREPH : BinaryVRIc<"vreph", 0xE74D, z_splat, v128h, v128h, 1>; def VREPF : BinaryVRIc<"vrepf", 0xE74D, z_splat, v128f, v128f, 2>; @@ -264,11 +273,13 @@ let Predicates = [FeatureVector] in { let Predicates = [FeatureVector] in { // Pack + def VPK : BinaryVRRcGeneric<"vpk", 0xE794>; def VPKH : BinaryVRRc<"vpkh", 0xE794, z_pack, v128b, v128h, 1>; def VPKF : BinaryVRRc<"vpkf", 0xE794, z_pack, v128h, v128f, 2>; def VPKG : BinaryVRRc<"vpkg", 0xE794, z_pack, v128f, v128g, 3>; // Pack saturate. + def VPKS : BinaryVRRbSPairGeneric<"vpks", 0xE797>; defm VPKSH : BinaryVRRbSPair<"vpksh", 0xE797, int_s390_vpksh, z_packs_cc, v128b, v128h, 1>; defm VPKSF : BinaryVRRbSPair<"vpksf", 0xE797, int_s390_vpksf, z_packs_cc, @@ -277,6 +288,7 @@ let Predicates = [FeatureVector] in { v128f, v128g, 3>; // Pack saturate logical. + def VPKLS : BinaryVRRbSPairGeneric<"vpkls", 0xE795>; defm VPKLSH : BinaryVRRbSPair<"vpklsh", 0xE795, int_s390_vpklsh, z_packls_cc, v128b, v128h, 1>; defm VPKLSF : BinaryVRRbSPair<"vpklsf", 0xE795, int_s390_vpklsf, z_packls_cc, @@ -285,6 +297,7 @@ let Predicates = [FeatureVector] in { v128f, v128g, 3>; // Sign-extend to doubleword. + def VSEG : UnaryVRRaGeneric<"vseg", 0xE75F>; def VSEGB : UnaryVRRa<"vsegb", 0xE75F, z_vsei8, v128g, v128g, 0>; def VSEGH : UnaryVRRa<"vsegh", 0xE75F, z_vsei16, v128g, v128g, 1>; def VSEGF : UnaryVRRa<"vsegf", 0xE75F, z_vsei32, v128g, v128g, 2>; @@ -293,21 +306,25 @@ let Predicates = [FeatureVector] in { def : Pat<(z_vsei32_by_parts (v4i32 VR128:$src)), (VSEGF VR128:$src)>; // Unpack high. + def VUPH : UnaryVRRaGeneric<"vuph", 0xE7D7>; def VUPHB : UnaryVRRa<"vuphb", 0xE7D7, z_unpack_high, v128h, v128b, 0>; def VUPHH : UnaryVRRa<"vuphh", 0xE7D7, z_unpack_high, v128f, v128h, 1>; def VUPHF : UnaryVRRa<"vuphf", 0xE7D7, z_unpack_high, v128g, v128f, 2>; // Unpack logical high. + def VUPLH : UnaryVRRaGeneric<"vuplh", 0xE7D5>; def VUPLHB : UnaryVRRa<"vuplhb", 0xE7D5, z_unpackl_high, v128h, v128b, 0>; def VUPLHH : UnaryVRRa<"vuplhh", 0xE7D5, z_unpackl_high, v128f, v128h, 1>; def VUPLHF : UnaryVRRa<"vuplhf", 0xE7D5, z_unpackl_high, v128g, v128f, 2>; // Unpack low. + def VUPL : UnaryVRRaGeneric<"vupl", 0xE7D6>; def VUPLB : UnaryVRRa<"vuplb", 0xE7D6, z_unpack_low, v128h, v128b, 0>; def VUPLHW : UnaryVRRa<"vuplhw", 0xE7D6, z_unpack_low, v128f, v128h, 1>; def VUPLF : UnaryVRRa<"vuplf", 0xE7D6, z_unpack_low, v128g, v128f, 2>; // Unpack logical low. + def VUPLL : UnaryVRRaGeneric<"vupll", 0xE7D4>; def VUPLLB : UnaryVRRa<"vupllb", 0xE7D4, z_unpackl_low, v128h, v128b, 0>; def VUPLLH : UnaryVRRa<"vupllh", 0xE7D4, z_unpackl_low, v128f, v128h, 1>; def VUPLLF : UnaryVRRa<"vupllf", 0xE7D4, z_unpackl_low, v128g, v128f, 2>; @@ -343,6 +360,7 @@ defm : GenericVectorOps; let Predicates = [FeatureVector] in { // Add. + def VA : BinaryVRRcGeneric<"va", 0xE7F3>; def VAB : BinaryVRRc<"vab", 0xE7F3, add, v128b, v128b, 0>; def VAH : BinaryVRRc<"vah", 0xE7F3, add, v128h, v128h, 1>; def VAF : BinaryVRRc<"vaf", 0xE7F3, add, v128f, v128f, 2>; @@ -350,6 +368,7 @@ let Predicates = [FeatureVector] in { def VAQ : BinaryVRRc<"vaq", 0xE7F3, int_s390_vaq, v128q, v128q, 4>; // Add compute carry. + def VACC : BinaryVRRcGeneric<"vacc", 0xE7F1>; def VACCB : BinaryVRRc<"vaccb", 0xE7F1, int_s390_vaccb, v128b, v128b, 0>; def VACCH : BinaryVRRc<"vacch", 0xE7F1, int_s390_vacch, v128h, v128h, 1>; def VACCF : BinaryVRRc<"vaccf", 0xE7F1, int_s390_vaccf, v128f, v128f, 2>; @@ -357,9 +376,11 @@ let Predicates = [FeatureVector] in { def VACCQ : BinaryVRRc<"vaccq", 0xE7F1, int_s390_vaccq, v128q, v128q, 4>; // Add with carry. + def VAC : TernaryVRRdGeneric<"vac", 0xE7BB>; def VACQ : TernaryVRRd<"vacq", 0xE7BB, int_s390_vacq, v128q, v128q, 4>; // Add with carry compute carry. + def VACCC : TernaryVRRdGeneric<"vaccc", 0xE7B9>; def VACCCQ : TernaryVRRd<"vacccq", 0xE7B9, int_s390_vacccq, v128q, v128q, 4>; // And. @@ -369,12 +390,14 @@ let Predicates = [FeatureVector] in { def VNC : BinaryVRRc<"vnc", 0xE769, null_frag, v128any, v128any>; // Average. + def VAVG : BinaryVRRcGeneric<"vavg", 0xE7F2>; def VAVGB : BinaryVRRc<"vavgb", 0xE7F2, int_s390_vavgb, v128b, v128b, 0>; def VAVGH : BinaryVRRc<"vavgh", 0xE7F2, int_s390_vavgh, v128h, v128h, 1>; def VAVGF : BinaryVRRc<"vavgf", 0xE7F2, int_s390_vavgf, v128f, v128f, 2>; def VAVGG : BinaryVRRc<"vavgg", 0xE7F2, int_s390_vavgg, v128g, v128g, 3>; // Average logical. + def VAVGL : BinaryVRRcGeneric<"vavgl", 0xE7F0>; def VAVGLB : BinaryVRRc<"vavglb", 0xE7F0, int_s390_vavglb, v128b, v128b, 0>; def VAVGLH : BinaryVRRc<"vavglh", 0xE7F0, int_s390_vavglh, v128h, v128h, 1>; def VAVGLF : BinaryVRRc<"vavglf", 0xE7F0, int_s390_vavglf, v128f, v128f, 2>; @@ -384,12 +407,14 @@ let Predicates = [FeatureVector] in { def VCKSM : BinaryVRRc<"vcksm", 0xE766, int_s390_vcksm, v128f, v128f>; // Count leading zeros. + def VCLZ : UnaryVRRaGeneric<"vclz", 0xE753>; def VCLZB : UnaryVRRa<"vclzb", 0xE753, ctlz, v128b, v128b, 0>; def VCLZH : UnaryVRRa<"vclzh", 0xE753, ctlz, v128h, v128h, 1>; def VCLZF : UnaryVRRa<"vclzf", 0xE753, ctlz, v128f, v128f, 2>; def VCLZG : UnaryVRRa<"vclzg", 0xE753, ctlz, v128g, v128g, 3>; // Count trailing zeros. + def VCLT : UnaryVRRaGeneric<"vctz", 0xE752>; def VCTZB : UnaryVRRa<"vctzb", 0xE752, cttz, v128b, v128b, 0>; def VCTZH : UnaryVRRa<"vctzh", 0xE752, cttz, v128h, v128h, 1>; def VCTZF : UnaryVRRa<"vctzf", 0xE752, cttz, v128f, v128f, 2>; @@ -399,134 +424,158 @@ let Predicates = [FeatureVector] in { def VX : BinaryVRRc<"vx", 0xE76D, null_frag, v128any, v128any>; // Galois field multiply sum. + def VGFM : BinaryVRRcGeneric<"vgfm", 0xE7B4>; def VGFMB : BinaryVRRc<"vgfmb", 0xE7B4, int_s390_vgfmb, v128h, v128b, 0>; def VGFMH : BinaryVRRc<"vgfmh", 0xE7B4, int_s390_vgfmh, v128f, v128h, 1>; def VGFMF : BinaryVRRc<"vgfmf", 0xE7B4, int_s390_vgfmf, v128g, v128f, 2>; def VGFMG : BinaryVRRc<"vgfmg", 0xE7B4, int_s390_vgfmg, v128q, v128g, 3>; // Galois field multiply sum and accumulate. + def VGFMA : TernaryVRRdGeneric<"vgfma", 0xE7BC>; def VGFMAB : TernaryVRRd<"vgfmab", 0xE7BC, int_s390_vgfmab, v128h, v128b, 0>; def VGFMAH : TernaryVRRd<"vgfmah", 0xE7BC, int_s390_vgfmah, v128f, v128h, 1>; def VGFMAF : TernaryVRRd<"vgfmaf", 0xE7BC, int_s390_vgfmaf, v128g, v128f, 2>; def VGFMAG : TernaryVRRd<"vgfmag", 0xE7BC, int_s390_vgfmag, v128q, v128g, 3>; // Load complement. + def VLC : UnaryVRRaGeneric<"vlc", 0xE7DE>; def VLCB : UnaryVRRa<"vlcb", 0xE7DE, z_vneg, v128b, v128b, 0>; def VLCH : UnaryVRRa<"vlch", 0xE7DE, z_vneg, v128h, v128h, 1>; def VLCF : UnaryVRRa<"vlcf", 0xE7DE, z_vneg, v128f, v128f, 2>; def VLCG : UnaryVRRa<"vlcg", 0xE7DE, z_vneg, v128g, v128g, 3>; // Load positive. + def VLP : UnaryVRRaGeneric<"vlp", 0xE7DF>; def VLPB : UnaryVRRa<"vlpb", 0xE7DF, z_viabs8, v128b, v128b, 0>; def VLPH : UnaryVRRa<"vlph", 0xE7DF, z_viabs16, v128h, v128h, 1>; def VLPF : UnaryVRRa<"vlpf", 0xE7DF, z_viabs32, v128f, v128f, 2>; def VLPG : UnaryVRRa<"vlpg", 0xE7DF, z_viabs64, v128g, v128g, 3>; // Maximum. + def VMX : BinaryVRRcGeneric<"vmx", 0xE7FF>; def VMXB : BinaryVRRc<"vmxb", 0xE7FF, null_frag, v128b, v128b, 0>; def VMXH : BinaryVRRc<"vmxh", 0xE7FF, null_frag, v128h, v128h, 1>; def VMXF : BinaryVRRc<"vmxf", 0xE7FF, null_frag, v128f, v128f, 2>; def VMXG : BinaryVRRc<"vmxg", 0xE7FF, null_frag, v128g, v128g, 3>; // Maximum logical. + def VMXL : BinaryVRRcGeneric<"vmxl", 0xE7FD>; def VMXLB : BinaryVRRc<"vmxlb", 0xE7FD, null_frag, v128b, v128b, 0>; def VMXLH : BinaryVRRc<"vmxlh", 0xE7FD, null_frag, v128h, v128h, 1>; def VMXLF : BinaryVRRc<"vmxlf", 0xE7FD, null_frag, v128f, v128f, 2>; def VMXLG : BinaryVRRc<"vmxlg", 0xE7FD, null_frag, v128g, v128g, 3>; // Minimum. + def VMN : BinaryVRRcGeneric<"vmn", 0xE7FE>; def VMNB : BinaryVRRc<"vmnb", 0xE7FE, null_frag, v128b, v128b, 0>; def VMNH : BinaryVRRc<"vmnh", 0xE7FE, null_frag, v128h, v128h, 1>; def VMNF : BinaryVRRc<"vmnf", 0xE7FE, null_frag, v128f, v128f, 2>; def VMNG : BinaryVRRc<"vmng", 0xE7FE, null_frag, v128g, v128g, 3>; // Minimum logical. + def VMNL : BinaryVRRcGeneric<"vmnl", 0xE7FC>; def VMNLB : BinaryVRRc<"vmnlb", 0xE7FC, null_frag, v128b, v128b, 0>; def VMNLH : BinaryVRRc<"vmnlh", 0xE7FC, null_frag, v128h, v128h, 1>; def VMNLF : BinaryVRRc<"vmnlf", 0xE7FC, null_frag, v128f, v128f, 2>; def VMNLG : BinaryVRRc<"vmnlg", 0xE7FC, null_frag, v128g, v128g, 3>; // Multiply and add low. + def VMAL : TernaryVRRdGeneric<"vmal", 0xE7AA>; def VMALB : TernaryVRRd<"vmalb", 0xE7AA, z_muladd, v128b, v128b, 0>; def VMALHW : TernaryVRRd<"vmalhw", 0xE7AA, z_muladd, v128h, v128h, 1>; def VMALF : TernaryVRRd<"vmalf", 0xE7AA, z_muladd, v128f, v128f, 2>; // Multiply and add high. + def VMAH : TernaryVRRdGeneric<"vmah", 0xE7AB>; def VMAHB : TernaryVRRd<"vmahb", 0xE7AB, int_s390_vmahb, v128b, v128b, 0>; def VMAHH : TernaryVRRd<"vmahh", 0xE7AB, int_s390_vmahh, v128h, v128h, 1>; def VMAHF : TernaryVRRd<"vmahf", 0xE7AB, int_s390_vmahf, v128f, v128f, 2>; // Multiply and add logical high. + def VMALH : TernaryVRRdGeneric<"vmalh", 0xE7A9>; def VMALHB : TernaryVRRd<"vmalhb", 0xE7A9, int_s390_vmalhb, v128b, v128b, 0>; def VMALHH : TernaryVRRd<"vmalhh", 0xE7A9, int_s390_vmalhh, v128h, v128h, 1>; def VMALHF : TernaryVRRd<"vmalhf", 0xE7A9, int_s390_vmalhf, v128f, v128f, 2>; // Multiply and add even. + def VMAE : TernaryVRRdGeneric<"vmae", 0xE7AE>; def VMAEB : TernaryVRRd<"vmaeb", 0xE7AE, int_s390_vmaeb, v128h, v128b, 0>; def VMAEH : TernaryVRRd<"vmaeh", 0xE7AE, int_s390_vmaeh, v128f, v128h, 1>; def VMAEF : TernaryVRRd<"vmaef", 0xE7AE, int_s390_vmaef, v128g, v128f, 2>; // Multiply and add logical even. + def VMALE : TernaryVRRdGeneric<"vmale", 0xE7AC>; def VMALEB : TernaryVRRd<"vmaleb", 0xE7AC, int_s390_vmaleb, v128h, v128b, 0>; def VMALEH : TernaryVRRd<"vmaleh", 0xE7AC, int_s390_vmaleh, v128f, v128h, 1>; def VMALEF : TernaryVRRd<"vmalef", 0xE7AC, int_s390_vmalef, v128g, v128f, 2>; // Multiply and add odd. + def VMAO : TernaryVRRdGeneric<"vmao", 0xE7AF>; def VMAOB : TernaryVRRd<"vmaob", 0xE7AF, int_s390_vmaob, v128h, v128b, 0>; def VMAOH : TernaryVRRd<"vmaoh", 0xE7AF, int_s390_vmaoh, v128f, v128h, 1>; def VMAOF : TernaryVRRd<"vmaof", 0xE7AF, int_s390_vmaof, v128g, v128f, 2>; // Multiply and add logical odd. + def VMALO : TernaryVRRdGeneric<"vmalo", 0xE7AD>; def VMALOB : TernaryVRRd<"vmalob", 0xE7AD, int_s390_vmalob, v128h, v128b, 0>; def VMALOH : TernaryVRRd<"vmaloh", 0xE7AD, int_s390_vmaloh, v128f, v128h, 1>; def VMALOF : TernaryVRRd<"vmalof", 0xE7AD, int_s390_vmalof, v128g, v128f, 2>; // Multiply high. + def VMH : BinaryVRRcGeneric<"vmh", 0xE7A3>; def VMHB : BinaryVRRc<"vmhb", 0xE7A3, int_s390_vmhb, v128b, v128b, 0>; def VMHH : BinaryVRRc<"vmhh", 0xE7A3, int_s390_vmhh, v128h, v128h, 1>; def VMHF : BinaryVRRc<"vmhf", 0xE7A3, int_s390_vmhf, v128f, v128f, 2>; // Multiply logical high. + def VMLH : BinaryVRRcGeneric<"vmlh", 0xE7A1>; def VMLHB : BinaryVRRc<"vmlhb", 0xE7A1, int_s390_vmlhb, v128b, v128b, 0>; def VMLHH : BinaryVRRc<"vmlhh", 0xE7A1, int_s390_vmlhh, v128h, v128h, 1>; def VMLHF : BinaryVRRc<"vmlhf", 0xE7A1, int_s390_vmlhf, v128f, v128f, 2>; // Multiply low. + def VML : BinaryVRRcGeneric<"vml", 0xE7A2>; def VMLB : BinaryVRRc<"vmlb", 0xE7A2, mul, v128b, v128b, 0>; def VMLHW : BinaryVRRc<"vmlhw", 0xE7A2, mul, v128h, v128h, 1>; def VMLF : BinaryVRRc<"vmlf", 0xE7A2, mul, v128f, v128f, 2>; // Multiply even. + def VME : BinaryVRRcGeneric<"vme", 0xE7A6>; def VMEB : BinaryVRRc<"vmeb", 0xE7A6, int_s390_vmeb, v128h, v128b, 0>; def VMEH : BinaryVRRc<"vmeh", 0xE7A6, int_s390_vmeh, v128f, v128h, 1>; def VMEF : BinaryVRRc<"vmef", 0xE7A6, int_s390_vmef, v128g, v128f, 2>; // Multiply logical even. + def VMLE : BinaryVRRcGeneric<"vmle", 0xE7A4>; def VMLEB : BinaryVRRc<"vmleb", 0xE7A4, int_s390_vmleb, v128h, v128b, 0>; def VMLEH : BinaryVRRc<"vmleh", 0xE7A4, int_s390_vmleh, v128f, v128h, 1>; def VMLEF : BinaryVRRc<"vmlef", 0xE7A4, int_s390_vmlef, v128g, v128f, 2>; // Multiply odd. + def VMO : BinaryVRRcGeneric<"vmo", 0xE7A7>; def VMOB : BinaryVRRc<"vmob", 0xE7A7, int_s390_vmob, v128h, v128b, 0>; def VMOH : BinaryVRRc<"vmoh", 0xE7A7, int_s390_vmoh, v128f, v128h, 1>; def VMOF : BinaryVRRc<"vmof", 0xE7A7, int_s390_vmof, v128g, v128f, 2>; // Multiply logical odd. + def VMLO : BinaryVRRcGeneric<"vmlo", 0xE7A5>; def VMLOB : BinaryVRRc<"vmlob", 0xE7A5, int_s390_vmlob, v128h, v128b, 0>; def VMLOH : BinaryVRRc<"vmloh", 0xE7A5, int_s390_vmloh, v128f, v128h, 1>; def VMLOF : BinaryVRRc<"vmlof", 0xE7A5, int_s390_vmlof, v128g, v128f, 2>; // Nor. def VNO : BinaryVRRc<"vno", 0xE76B, null_frag, v128any, v128any>; + def : InstAlias<"vnot\t$V1, $V2", (VNO VR128:$V1, VR128:$V2, VR128:$V2), 0>; // Or. def VO : BinaryVRRc<"vo", 0xE76A, null_frag, v128any, v128any>; // Population count. - def VPOPCT : BinaryVRRa<"vpopct", 0xE750>; + def VPOPCT : UnaryVRRaGeneric<"vpopct", 0xE750>; def : Pat<(v16i8 (z_popcnt VR128:$x)), (VPOPCT VR128:$x, 0)>; // Element rotate left logical (with vector shift amount). + def VERLLV : BinaryVRRcGeneric<"verllv", 0xE773>; def VERLLVB : BinaryVRRc<"verllvb", 0xE773, int_s390_verllvb, v128b, v128b, 0>; def VERLLVH : BinaryVRRc<"verllvh", 0xE773, int_s390_verllvh, @@ -537,48 +586,56 @@ let Predicates = [FeatureVector] in { v128g, v128g, 3>; // Element rotate left logical (with scalar shift amount). + def VERLL : BinaryVRSaGeneric<"verll", 0xE733>; def VERLLB : BinaryVRSa<"verllb", 0xE733, int_s390_verllb, v128b, v128b, 0>; def VERLLH : BinaryVRSa<"verllh", 0xE733, int_s390_verllh, v128h, v128h, 1>; def VERLLF : BinaryVRSa<"verllf", 0xE733, int_s390_verllf, v128f, v128f, 2>; def VERLLG : BinaryVRSa<"verllg", 0xE733, int_s390_verllg, v128g, v128g, 3>; // Element rotate and insert under mask. + def VERIM : QuaternaryVRIdGeneric<"verim", 0xE772>; def VERIMB : QuaternaryVRId<"verimb", 0xE772, int_s390_verimb, v128b, v128b, 0>; def VERIMH : QuaternaryVRId<"verimh", 0xE772, int_s390_verimh, v128h, v128h, 1>; def VERIMF : QuaternaryVRId<"verimf", 0xE772, int_s390_verimf, v128f, v128f, 2>; def VERIMG : QuaternaryVRId<"verimg", 0xE772, int_s390_verimg, v128g, v128g, 3>; // Element shift left (with vector shift amount). + def VESLV : BinaryVRRcGeneric<"veslv", 0xE770>; def VESLVB : BinaryVRRc<"veslvb", 0xE770, z_vshl, v128b, v128b, 0>; def VESLVH : BinaryVRRc<"veslvh", 0xE770, z_vshl, v128h, v128h, 1>; def VESLVF : BinaryVRRc<"veslvf", 0xE770, z_vshl, v128f, v128f, 2>; def VESLVG : BinaryVRRc<"veslvg", 0xE770, z_vshl, v128g, v128g, 3>; // Element shift left (with scalar shift amount). + def VESL : BinaryVRSaGeneric<"vesl", 0xE730>; def VESLB : BinaryVRSa<"veslb", 0xE730, z_vshl_by_scalar, v128b, v128b, 0>; def VESLH : BinaryVRSa<"veslh", 0xE730, z_vshl_by_scalar, v128h, v128h, 1>; def VESLF : BinaryVRSa<"veslf", 0xE730, z_vshl_by_scalar, v128f, v128f, 2>; def VESLG : BinaryVRSa<"veslg", 0xE730, z_vshl_by_scalar, v128g, v128g, 3>; // Element shift right arithmetic (with vector shift amount). + def VESRAV : BinaryVRRcGeneric<"vesrav", 0xE77A>; def VESRAVB : BinaryVRRc<"vesravb", 0xE77A, z_vsra, v128b, v128b, 0>; def VESRAVH : BinaryVRRc<"vesravh", 0xE77A, z_vsra, v128h, v128h, 1>; def VESRAVF : BinaryVRRc<"vesravf", 0xE77A, z_vsra, v128f, v128f, 2>; def VESRAVG : BinaryVRRc<"vesravg", 0xE77A, z_vsra, v128g, v128g, 3>; // Element shift right arithmetic (with scalar shift amount). + def VESRA : BinaryVRSaGeneric<"vesra", 0xE73A>; def VESRAB : BinaryVRSa<"vesrab", 0xE73A, z_vsra_by_scalar, v128b, v128b, 0>; def VESRAH : BinaryVRSa<"vesrah", 0xE73A, z_vsra_by_scalar, v128h, v128h, 1>; def VESRAF : BinaryVRSa<"vesraf", 0xE73A, z_vsra_by_scalar, v128f, v128f, 2>; def VESRAG : BinaryVRSa<"vesrag", 0xE73A, z_vsra_by_scalar, v128g, v128g, 3>; // Element shift right logical (with vector shift amount). + def VESRLV : BinaryVRRcGeneric<"vesrlv", 0xE778>; def VESRLVB : BinaryVRRc<"vesrlvb", 0xE778, z_vsrl, v128b, v128b, 0>; def VESRLVH : BinaryVRRc<"vesrlvh", 0xE778, z_vsrl, v128h, v128h, 1>; def VESRLVF : BinaryVRRc<"vesrlvf", 0xE778, z_vsrl, v128f, v128f, 2>; def VESRLVG : BinaryVRRc<"vesrlvg", 0xE778, z_vsrl, v128g, v128g, 3>; // Element shift right logical (with scalar shift amount). + def VESRL : BinaryVRSaGeneric<"vesrl", 0xE738>; def VESRLB : BinaryVRSa<"vesrlb", 0xE738, z_vsrl_by_scalar, v128b, v128b, 0>; def VESRLH : BinaryVRSa<"vesrlh", 0xE738, z_vsrl_by_scalar, v128h, v128h, 1>; def VESRLF : BinaryVRSa<"vesrlf", 0xE738, z_vsrl_by_scalar, v128f, v128f, 2>; @@ -608,6 +665,7 @@ let Predicates = [FeatureVector] in { def VSRLB : BinaryVRRc<"vsrlb", 0xE77D, int_s390_vsrlb, v128b, v128b>; // Subtract. + def VS : BinaryVRRcGeneric<"vs", 0xE7F7>; def VSB : BinaryVRRc<"vsb", 0xE7F7, sub, v128b, v128b, 0>; def VSH : BinaryVRRc<"vsh", 0xE7F7, sub, v128h, v128h, 1>; def VSF : BinaryVRRc<"vsf", 0xE7F7, sub, v128f, v128f, 2>; @@ -615,6 +673,7 @@ let Predicates = [FeatureVector] in { def VSQ : BinaryVRRc<"vsq", 0xE7F7, int_s390_vsq, v128q, v128q, 4>; // Subtract compute borrow indication. + def VSCBI : BinaryVRRcGeneric<"vscbi", 0xE7F5>; def VSCBIB : BinaryVRRc<"vscbib", 0xE7F5, int_s390_vscbib, v128b, v128b, 0>; def VSCBIH : BinaryVRRc<"vscbih", 0xE7F5, int_s390_vscbih, v128h, v128h, 1>; def VSCBIF : BinaryVRRc<"vscbif", 0xE7F5, int_s390_vscbif, v128f, v128f, 2>; @@ -622,21 +681,26 @@ let Predicates = [FeatureVector] in { def VSCBIQ : BinaryVRRc<"vscbiq", 0xE7F5, int_s390_vscbiq, v128q, v128q, 4>; // Subtract with borrow indication. + def VSBI : TernaryVRRdGeneric<"vsbi", 0xE7BF>; def VSBIQ : TernaryVRRd<"vsbiq", 0xE7BF, int_s390_vsbiq, v128q, v128q, 4>; // Subtract with borrow compute borrow indication. + def VSBCBI : TernaryVRRdGeneric<"vsbcbi", 0xE7BD>; def VSBCBIQ : TernaryVRRd<"vsbcbiq", 0xE7BD, int_s390_vsbcbiq, v128q, v128q, 4>; // Sum across doubleword. + def VSUMG : BinaryVRRcGeneric<"vsumg", 0xE765>; def VSUMGH : BinaryVRRc<"vsumgh", 0xE765, z_vsum, v128g, v128h, 1>; def VSUMGF : BinaryVRRc<"vsumgf", 0xE765, z_vsum, v128g, v128f, 2>; // Sum across quadword. + def VSUMQ : BinaryVRRcGeneric<"vsumq", 0xE767>; def VSUMQF : BinaryVRRc<"vsumqf", 0xE767, z_vsum, v128q, v128f, 2>; def VSUMQG : BinaryVRRc<"vsumqg", 0xE767, z_vsum, v128q, v128g, 3>; // Sum across word. + def VSUM : BinaryVRRcGeneric<"vsum", 0xE764>; def VSUMB : BinaryVRRc<"vsumb", 0xE764, z_vsum, v128f, v128b, 0>; def VSUMH : BinaryVRRc<"vsumh", 0xE764, z_vsum, v128f, v128h, 1>; } @@ -737,6 +801,7 @@ defm : IntegerMinMaxVectorOps; let Predicates = [FeatureVector] in { // Element compare. let Defs = [CC] in { + def VEC : CompareVRRaGeneric<"vec", 0xE7DB>; def VECB : CompareVRRa<"vecb", 0xE7DB, null_frag, v128b, 0>; def VECH : CompareVRRa<"vech", 0xE7DB, null_frag, v128h, 1>; def VECF : CompareVRRa<"vecf", 0xE7DB, null_frag, v128f, 2>; @@ -745,6 +810,7 @@ let Predicates = [FeatureVector] in { // Element compare logical. let Defs = [CC] in { + def VECL : CompareVRRaGeneric<"vecl", 0xE7D9>; def VECLB : CompareVRRa<"veclb", 0xE7D9, null_frag, v128b, 0>; def VECLH : CompareVRRa<"veclh", 0xE7D9, null_frag, v128h, 1>; def VECLF : CompareVRRa<"veclf", 0xE7D9, null_frag, v128f, 2>; @@ -752,6 +818,7 @@ let Predicates = [FeatureVector] in { } // Compare equal. + def VCEQ : BinaryVRRbSPairGeneric<"vceq", 0xE7F8>; defm VCEQB : BinaryVRRbSPair<"vceqb", 0xE7F8, z_vicmpe, z_vicmpes, v128b, v128b, 0>; defm VCEQH : BinaryVRRbSPair<"vceqh", 0xE7F8, z_vicmpe, z_vicmpes, @@ -762,6 +829,7 @@ let Predicates = [FeatureVector] in { v128g, v128g, 3>; // Compare high. + def VCH : BinaryVRRbSPairGeneric<"vch", 0xE7FB>; defm VCHB : BinaryVRRbSPair<"vchb", 0xE7FB, z_vicmph, z_vicmphs, v128b, v128b, 0>; defm VCHH : BinaryVRRbSPair<"vchh", 0xE7FB, z_vicmph, z_vicmphs, @@ -772,6 +840,7 @@ let Predicates = [FeatureVector] in { v128g, v128g, 3>; // Compare high logical. + def VCHL : BinaryVRRbSPairGeneric<"vchl", 0xE7F9>; defm VCHLB : BinaryVRRbSPair<"vchlb", 0xE7F9, z_vicmphl, z_vicmphls, v128b, v128b, 0>; defm VCHLH : BinaryVRRbSPair<"vchlh", 0xE7F9, z_vicmphl, z_vicmphls, @@ -803,64 +872,81 @@ multiclass VectorRounding { let Predicates = [FeatureVector] in { // Add. + def VFA : BinaryVRRcFloatGeneric<"vfa", 0xE7E3>; def VFADB : BinaryVRRc<"vfadb", 0xE7E3, fadd, v128db, v128db, 3, 0>; def WFADB : BinaryVRRc<"wfadb", 0xE7E3, fadd, v64db, v64db, 3, 8>; // Convert from fixed 64-bit. + def VCDG : TernaryVRRaFloatGeneric<"vcdg", 0xE7C3>; def VCDGB : TernaryVRRa<"vcdgb", 0xE7C3, null_frag, v128db, v128g, 3, 0>; def WCDGB : TernaryVRRa<"wcdgb", 0xE7C3, null_frag, v64db, v64g, 3, 8>; def : FPConversion; // Convert from logical 64-bit. + def VCDLG : TernaryVRRaFloatGeneric<"vcdlg", 0xE7C1>; def VCDLGB : TernaryVRRa<"vcdlgb", 0xE7C1, null_frag, v128db, v128g, 3, 0>; def WCDLGB : TernaryVRRa<"wcdlgb", 0xE7C1, null_frag, v64db, v64g, 3, 8>; def : FPConversion; // Convert to fixed 64-bit. + def VCGD : TernaryVRRaFloatGeneric<"vcgd", 0xE7C2>; def VCGDB : TernaryVRRa<"vcgdb", 0xE7C2, null_frag, v128g, v128db, 3, 0>; def WCGDB : TernaryVRRa<"wcgdb", 0xE7C2, null_frag, v64g, v64db, 3, 8>; // Rounding mode should agree with SystemZInstrFP.td. def : FPConversion; // Convert to logical 64-bit. + def VCLGD : TernaryVRRaFloatGeneric<"vclgd", 0xE7C0>; def VCLGDB : TernaryVRRa<"vclgdb", 0xE7C0, null_frag, v128g, v128db, 3, 0>; def WCLGDB : TernaryVRRa<"wclgdb", 0xE7C0, null_frag, v64g, v64db, 3, 8>; // Rounding mode should agree with SystemZInstrFP.td. def : FPConversion; // Divide. + def VFD : BinaryVRRcFloatGeneric<"vfd", 0xE7E5>; def VFDDB : BinaryVRRc<"vfddb", 0xE7E5, fdiv, v128db, v128db, 3, 0>; def WFDDB : BinaryVRRc<"wfddb", 0xE7E5, fdiv, v64db, v64db, 3, 8>; // Load FP integer. + def VFI : TernaryVRRaFloatGeneric<"vfi", 0xE7C7>; def VFIDB : TernaryVRRa<"vfidb", 0xE7C7, int_s390_vfidb, v128db, v128db, 3, 0>; def WFIDB : TernaryVRRa<"wfidb", 0xE7C7, null_frag, v64db, v64db, 3, 8>; defm : VectorRounding; defm : VectorRounding; // Load lengthened. + def VLDE : UnaryVRRaFloatGeneric<"vlde", 0xE7C4>; def VLDEB : UnaryVRRa<"vldeb", 0xE7C4, z_vextend, v128db, v128eb, 2, 0>; def WLDEB : UnaryVRRa<"wldeb", 0xE7C4, fpextend, v64db, v32eb, 2, 8>; // Load rounded, + def VLED : TernaryVRRaFloatGeneric<"vled", 0xE7C5>; def VLEDB : TernaryVRRa<"vledb", 0xE7C5, null_frag, v128eb, v128db, 3, 0>; def WLEDB : TernaryVRRa<"wledb", 0xE7C5, null_frag, v32eb, v64db, 3, 8>; def : Pat<(v4f32 (z_vround (v2f64 VR128:$src))), (VLEDB VR128:$src, 0, 0)>; def : FPConversion; // Multiply. + def VFM : BinaryVRRcFloatGeneric<"vfm", 0xE7E7>; def VFMDB : BinaryVRRc<"vfmdb", 0xE7E7, fmul, v128db, v128db, 3, 0>; def WFMDB : BinaryVRRc<"wfmdb", 0xE7E7, fmul, v64db, v64db, 3, 8>; // Multiply and add. + def VFMA : TernaryVRReFloatGeneric<"vfma", 0xE78F>; def VFMADB : TernaryVRRe<"vfmadb", 0xE78F, fma, v128db, v128db, 0, 3>; def WFMADB : TernaryVRRe<"wfmadb", 0xE78F, fma, v64db, v64db, 8, 3>; // Multiply and subtract. + def VFMS : TernaryVRReFloatGeneric<"vfms", 0xE78E>; def VFMSDB : TernaryVRRe<"vfmsdb", 0xE78E, fms, v128db, v128db, 0, 3>; def WFMSDB : TernaryVRRe<"wfmsdb", 0xE78E, fms, v64db, v64db, 8, 3>; - // Load complement, + // Perform sign operation. + def VFPSO : BinaryVRRaFloatGeneric<"vfpso", 0xE7CC>; + def VFPSODB : BinaryVRRa<"vfpsodb", 0xE7CC, null_frag, v128db, v128db, 3, 0>; + def WFPSODB : BinaryVRRa<"wfpsodb", 0xE7CC, null_frag, v64db, v64db, 3, 8>; + + // Load complement. def VFLCDB : UnaryVRRa<"vflcdb", 0xE7CC, fneg, v128db, v128db, 3, 0, 0>; def WFLCDB : UnaryVRRa<"wflcdb", 0xE7CC, fneg, v64db, v64db, 3, 8, 0>; @@ -873,15 +959,18 @@ let Predicates = [FeatureVector] in { def WFLPDB : UnaryVRRa<"wflpdb", 0xE7CC, fabs, v64db, v64db, 3, 8, 2>; // Square root. + def VFSQ : UnaryVRRaFloatGeneric<"vfsq", 0xE7CE>; def VFSQDB : UnaryVRRa<"vfsqdb", 0xE7CE, fsqrt, v128db, v128db, 3, 0>; def WFSQDB : UnaryVRRa<"wfsqdb", 0xE7CE, fsqrt, v64db, v64db, 3, 8>; // Subtract. + def VFS : BinaryVRRcFloatGeneric<"vfs", 0xE7E2>; def VFSDB : BinaryVRRc<"vfsdb", 0xE7E2, fsub, v128db, v128db, 3, 0>; def WFSDB : BinaryVRRc<"wfsdb", 0xE7E2, fsub, v64db, v64db, 3, 8>; // Test data class immediate. let Defs = [CC] in { + def VFTCI : BinaryVRIeFloatGeneric<"vftci", 0xE74A>; def VFTCIDB : BinaryVRIe<"vftcidb", 0xE74A, z_vftci, v128g, v128db, 3, 0>; def WFTCIDB : BinaryVRIe<"wftcidb", 0xE74A, null_frag, v64g, v64db, 3, 8>; } @@ -893,26 +982,33 @@ let Predicates = [FeatureVector] in { let Predicates = [FeatureVector] in { // Compare scalar. - let Defs = [CC] in + let Defs = [CC] in { + def WFC : CompareVRRaFloatGeneric<"wfc", 0xE7CB>; def WFCDB : CompareVRRa<"wfcdb", 0xE7CB, z_fcmp, v64db, 3>; + } // Compare and signal scalar. - let Defs = [CC] in + let Defs = [CC] in { + def WFK : CompareVRRaFloatGeneric<"wfk", 0xE7CA>; def WFKDB : CompareVRRa<"wfkdb", 0xE7CA, null_frag, v64db, 3>; + } // Compare equal. + def VFCE : BinaryVRRcSPairFloatGeneric<"vfce", 0xE7E8>; defm VFCEDB : BinaryVRRcSPair<"vfcedb", 0xE7E8, z_vfcmpe, z_vfcmpes, v128g, v128db, 3, 0>; defm WFCEDB : BinaryVRRcSPair<"wfcedb", 0xE7E8, null_frag, null_frag, v64g, v64db, 3, 8>; // Compare high. + def VFCH : BinaryVRRcSPairFloatGeneric<"vfch", 0xE7EB>; defm VFCHDB : BinaryVRRcSPair<"vfchdb", 0xE7EB, z_vfcmph, z_vfcmphs, v128g, v128db, 3, 0>; defm WFCHDB : BinaryVRRcSPair<"wfchdb", 0xE7EB, null_frag, null_frag, v64g, v64db, 3, 8>; // Compare high or equal. + def VFCHE : BinaryVRRcSPairFloatGeneric<"vfche", 0xE7EA>; defm VFCHEDB : BinaryVRRcSPair<"vfchedb", 0xE7EA, z_vfcmphe, z_vfcmphes, v128g, v128db, 3, 0>; defm WFCHEDB : BinaryVRRcSPair<"wfchedb", 0xE7EA, null_frag, null_frag, @@ -1036,6 +1132,7 @@ let AddedComplexity = 4 in { //===----------------------------------------------------------------------===// let Predicates = [FeatureVector] in { + defm VFAE : TernaryOptVRRbSPairGeneric<"vfae", 0xE782>; defm VFAEB : TernaryOptVRRbSPair<"vfaeb", 0xE782, int_s390_vfaeb, z_vfae_cc, v128b, v128b, 0>; defm VFAEH : TernaryOptVRRbSPair<"vfaeh", 0xE782, int_s390_vfaeh, @@ -1049,6 +1146,7 @@ let Predicates = [FeatureVector] in { defm VFAEZF : TernaryOptVRRbSPair<"vfaezf", 0xE782, int_s390_vfaezf, z_vfaez_cc, v128f, v128f, 2, 2>; + defm VFEE : BinaryExtraVRRbSPairGeneric<"vfee", 0xE780>; defm VFEEB : BinaryExtraVRRbSPair<"vfeeb", 0xE780, int_s390_vfeeb, z_vfee_cc, v128b, v128b, 0>; defm VFEEH : BinaryExtraVRRbSPair<"vfeeh", 0xE780, int_s390_vfeeh, @@ -1062,6 +1160,7 @@ let Predicates = [FeatureVector] in { defm VFEEZF : BinaryVRRbSPair<"vfeezf", 0xE780, int_s390_vfeezf, z_vfeez_cc, v128f, v128f, 2, 2>; + defm VFENE : BinaryExtraVRRbSPairGeneric<"vfene", 0xE781>; defm VFENEB : BinaryExtraVRRbSPair<"vfeneb", 0xE781, int_s390_vfeneb, z_vfene_cc, v128b, v128b, 0>; defm VFENEH : BinaryExtraVRRbSPair<"vfeneh", 0xE781, int_s390_vfeneh, @@ -1075,6 +1174,7 @@ let Predicates = [FeatureVector] in { defm VFENEZF : BinaryVRRbSPair<"vfenezf", 0xE781, int_s390_vfenezf, z_vfenez_cc, v128f, v128f, 2, 2>; + defm VISTR : UnaryExtraVRRaSPairGeneric<"vistr", 0xE75C>; defm VISTRB : UnaryExtraVRRaSPair<"vistrb", 0xE75C, int_s390_vistrb, z_vistr_cc, v128b, v128b, 0>; defm VISTRH : UnaryExtraVRRaSPair<"vistrh", 0xE75C, int_s390_vistrh, @@ -1082,6 +1182,7 @@ let Predicates = [FeatureVector] in { defm VISTRF : UnaryExtraVRRaSPair<"vistrf", 0xE75C, int_s390_vistrf, z_vistr_cc, v128f, v128f, 2>; + defm VSTRC : QuaternaryOptVRRdSPairGeneric<"vstrc", 0xE78A>; defm VSTRCB : QuaternaryOptVRRdSPair<"vstrcb", 0xE78A, int_s390_vstrcb, z_vstrc_cc, v128b, v128b, 0>; defm VSTRCH : QuaternaryOptVRRdSPair<"vstrch", 0xE78A, int_s390_vstrch, diff --git a/llvm/test/MC/Disassembler/SystemZ/insns-z13.txt b/llvm/test/MC/Disassembler/SystemZ/insns-z13.txt index 68869ab..147a755 100644 --- a/llvm/test/MC/Disassembler/SystemZ/insns-z13.txt +++ b/llvm/test/MC/Disassembler/SystemZ/insns-z13.txt @@ -11,6 +11,15 @@ #CHECK: lcbb %r15, 4095(%r15,%r15), 15 0xe7 0xff 0xff 0xff 0xf0 0x27 +#CHECK: va %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xf3 + +#CHECK: va %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xf3 + +#CHECK: va %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xf3 + #CHECK: vab %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xf3 @@ -20,6 +29,15 @@ #CHECK: vab %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x0e 0xf3 +#CHECK: vacc %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xf1 + +#CHECK: vacc %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xf1 + +#CHECK: vacc %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xf1 + #CHECK: vaccb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xf1 @@ -29,6 +47,15 @@ #CHECK: vaccb %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x0e 0xf1 +#CHECK: vaccc %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xb9 + +#CHECK: vaccc %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xb9 + +#CHECK: vaccc %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xb9 + #CHECK: vacccq %v0, %v0, %v0, %v0 0xe7 0x00 0x04 0x00 0x00 0xb9 @@ -74,6 +101,15 @@ #CHECK: vaccq %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x4e 0xf1 +#CHECK: vac %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xbb + +#CHECK: vac %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xbb + +#CHECK: vac %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xbb + #CHECK: vacq %v0, %v0, %v0, %v0 0xe7 0x00 0x04 0x00 0x00 0xbb @@ -119,6 +155,15 @@ #CHECK: vaq %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x4e 0xf3 +#CHECK: vavg %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xf2 + +#CHECK: vavg %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xf2 + +#CHECK: vavg %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xf2 + #CHECK: vavgb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xf2 @@ -155,6 +200,15 @@ #CHECK: vavgh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xf2 +#CHECK: vavgl %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xf0 + +#CHECK: vavgl %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xf0 + +#CHECK: vavgl %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xf0 + #CHECK: vavglb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xf0 @@ -191,6 +245,15 @@ #CHECK: vavglh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xf0 +#CHECK: vcdg %v0, %v0, 11, 0, 0 +0xe7 0x00 0x00 0x00 0xb0 0xc3 + +#CHECK: vcdg %v19, %v14, 11, 4, 10 +0xe7 0x3e 0x00 0xa4 0xb8 0xc3 + +#CHECK: vcdg %v31, %v31, 11, 7, 15 +0xe7 0xff 0x00 0xf7 0xbc 0xc3 + #CHECK: vcdgb %v0, %v0, 0, 0 0xe7 0x00 0x00 0x00 0x30 0xc3 @@ -200,6 +263,15 @@ #CHECK: vcdgb %v31, %v31, 7, 15 0xe7 0xff 0x00 0xf7 0x3c 0xc3 +#CHECK: vcdlg %v0, %v0, 11, 0, 0 +0xe7 0x00 0x00 0x00 0xb0 0xc1 + +#CHECK: vcdlg %v19, %v14, 11, 4, 10 +0xe7 0x3e 0x00 0xa4 0xb8 0xc1 + +#CHECK: vcdlg %v31, %v31, 11, 7, 15 +0xe7 0xff 0x00 0xf7 0xbc 0xc1 + #CHECK: vcdlgb %v0, %v0, 0, 0 0xe7 0x00 0x00 0x00 0x30 0xc1 @@ -209,6 +281,18 @@ #CHECK: vcdlgb %v31, %v31, 7, 15 0xe7 0xff 0x00 0xf7 0x3c 0xc1 +#CHECK: vceq %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x90 0xb0 0xf8 + +#CHECK: vceq %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x90 0xba 0xf8 + +#CHECK: vceq %v7, %v24, %v9, 11, 9 +0xe7 0x78 0x90 0x90 0xb4 0xf8 + +#CHECK: vceq %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x90 0xbe 0xf8 + #CHECK: vceqb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xf8 @@ -257,6 +341,15 @@ #CHECK: vceqh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xf8 +#CHECK: vcgd %v0, %v0, 11, 0, 0 +0xe7 0x00 0x00 0x00 0xb0 0xc2 + +#CHECK: vcgd %v19, %v14, 11, 4, 10 +0xe7 0x3e 0x00 0xa4 0xb8 0xc2 + +#CHECK: vcgd %v31, %v31, 11, 7, 15 +0xe7 0xff 0x00 0xf7 0xbc 0xc2 + #CHECK: vcgdb %v0, %v0, 0, 0 0xe7 0x00 0x00 0x00 0x30 0xc2 @@ -266,6 +359,18 @@ #CHECK: vcgdb %v31, %v31, 7, 15 0xe7 0xff 0x00 0xf7 0x3c 0xc2 +#CHECK: vch %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x90 0xb0 0xfb + +#CHECK: vch %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x90 0xba 0xfb + +#CHECK: vch %v7, %v24, %v9, 11, 9 +0xe7 0x78 0x90 0x90 0xb4 0xfb + +#CHECK: vch %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x90 0xbe 0xfb + #CHECK: vchb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xfb @@ -314,6 +419,18 @@ #CHECK: vchh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xfb +#CHECK: vchl %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x90 0xb0 0xf9 + +#CHECK: vchl %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x90 0xba 0xf9 + +#CHECK: vchl %v7, %v24, %v9, 11, 9 +0xe7 0x78 0x90 0x90 0xb4 0xf9 + +#CHECK: vchl %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x90 0xbe 0xf9 + #CHECK: vchlb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xf9 @@ -371,6 +488,15 @@ #CHECK: vcksm %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x0e 0x66 +#CHECK: vclgd %v0, %v0, 11, 0, 0 +0xe7 0x00 0x00 0x00 0xb0 0xc0 + +#CHECK: vclgd %v19, %v14, 11, 4, 10 +0xe7 0x3e 0x00 0xa4 0xb8 0xc0 + +#CHECK: vclgd %v31, %v31, 11, 7, 15 +0xe7 0xff 0x00 0xf7 0xbc 0xc0 + #CHECK: vclgdb %v0, %v0, 0, 0 0xe7 0x00 0x00 0x00 0x30 0xc0 @@ -380,6 +506,15 @@ #CHECK: vclgdb %v31, %v31, 7, 15 0xe7 0xff 0x00 0xf7 0x3c 0xc0 +#CHECK: vclz %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x53 + +#CHECK: vclz %v19, %v14, 11 +0xe7 0x3e 0x00 0x00 0xb8 0x53 + +#CHECK: vclz %v31, %v31, 11 +0xe7 0xff 0x00 0x00 0xbc 0x53 + #CHECK: vclzb %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0x53 @@ -416,6 +551,15 @@ #CHECK: vclzh %v31, %v31 0xe7 0xff 0x00 0x00 0x1c 0x53 +#CHECK: vctz %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x52 + +#CHECK: vctz %v19, %v14, 11 +0xe7 0x3e 0x00 0x00 0xb8 0x52 + +#CHECK: vctz %v31, %v31, 11 +0xe7 0xff 0x00 0x00 0xbc 0x52 + #CHECK: vctzb %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0x52 @@ -452,6 +596,15 @@ #CHECK: vctzh %v31, %v31 0xe7 0xff 0x00 0x00 0x1c 0x52 +#CHECK: vec %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xdb + +#CHECK: vec %v19, %v14, 11 +0xe7 0x3e 0x00 0x00 0xb8 0xdb + +#CHECK: vec %v31, %v31, 11 +0xe7 0xff 0x00 0x00 0xbc 0xdb + #CHECK: vecb %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xdb @@ -488,6 +641,15 @@ #CHECK: vech %v31, %v31 0xe7 0xff 0x00 0x00 0x1c 0xdb +#CHECK: vecl %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xd9 + +#CHECK: vecl %v19, %v14, 11 +0xe7 0x3e 0x00 0x00 0xb8 0xd9 + +#CHECK: vecl %v31, %v31, 11 +0xe7 0xff 0x00 0x00 0xbc 0xd9 + #CHECK: veclb %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xd9 @@ -524,6 +686,15 @@ #CHECK: veclh %v31, %v31 0xe7 0xff 0x00 0x00 0x1c 0xd9 +#CHECK: verim %v0, %v0, %v0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x72 + +#CHECK: verim %v3, %v20, %v5, 103, 11 +0xe7 0x34 0x50 0x67 0xb4 0x72 + +#CHECK: verim %v31, %v31, %v31, 255, 11 +0xe7 0xff 0xf0 0xff 0xbe 0x72 + #CHECK: verimb %v0, %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x72 @@ -560,6 +731,15 @@ #CHECK: verimh %v31, %v31, %v31, 255 0xe7 0xff 0xf0 0xff 0x1e 0x72 +#CHECK: verllv %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x73 + +#CHECK: verllv %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0x73 + +#CHECK: verllv %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0x73 + #CHECK: verllvb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0x73 @@ -596,6 +776,15 @@ #CHECK: verllvh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0x73 +#CHECK: verll %v0, %v0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x33 + +#CHECK: verll %v12, %v18, 1110(%r3), 11 +0xe7 0xc2 0x34 0x56 0xb4 0x33 + +#CHECK: verll %v31, %v31, 4095(%r15), 11 +0xe7 0xff 0xff 0xff 0xbc 0x33 + #CHECK: verllb %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x33 @@ -632,6 +821,15 @@ #CHECK: verllh %v31, %v31, 4095(%r15) 0xe7 0xff 0xff 0xff 0x1c 0x33 +#CHECK: veslv %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x70 + +#CHECK: veslv %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0x70 + +#CHECK: veslv %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0x70 + #CHECK: veslvb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0x70 @@ -668,6 +866,15 @@ #CHECK: veslvh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0x70 +#CHECK: vesl %v0, %v0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x30 + +#CHECK: vesl %v12, %v18, 1110(%r3), 11 +0xe7 0xc2 0x34 0x56 0xb4 0x30 + +#CHECK: vesl %v31, %v31, 4095(%r15), 11 +0xe7 0xff 0xff 0xff 0xbc 0x30 + #CHECK: veslb %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x30 @@ -704,6 +911,15 @@ #CHECK: veslh %v31, %v31, 4095(%r15) 0xe7 0xff 0xff 0xff 0x1c 0x30 +#CHECK: vesrav %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x7a + +#CHECK: vesrav %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0x7a + +#CHECK: vesrav %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0x7a + #CHECK: vesravb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0x7a @@ -740,6 +956,15 @@ #CHECK: vesravh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0x7a +#CHECK: vesra %v0, %v0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x3a + +#CHECK: vesra %v12, %v18, 1110(%r3), 11 +0xe7 0xc2 0x34 0x56 0xb4 0x3a + +#CHECK: vesra %v31, %v31, 4095(%r15), 11 +0xe7 0xff 0xff 0xff 0xbc 0x3a + #CHECK: vesrab %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x3a @@ -776,6 +1001,15 @@ #CHECK: vesrah %v31, %v31, 4095(%r15) 0xe7 0xff 0xff 0xff 0x1c 0x3a +#CHECK: vesrlv %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x78 + +#CHECK: vesrlv %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0x78 + +#CHECK: vesrlv %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0x78 + #CHECK: vesrlvb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0x78 @@ -812,6 +1046,15 @@ #CHECK: vesrlvh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0x78 +#CHECK: vesrl %v0, %v0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x38 + +#CHECK: vesrl %v12, %v18, 1110(%r3), 11 +0xe7 0xc2 0x34 0x56 0xb4 0x38 + +#CHECK: vesrl %v31, %v31, 4095(%r15), 11 +0xe7 0xff 0xff 0xff 0xbc 0x38 + #CHECK: vesrlb %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x38 @@ -848,6 +1091,15 @@ #CHECK: vesrlh %v31, %v31, 4095(%r15) 0xe7 0xff 0xff 0xff 0x1c 0x38 +#CHECK: vfa %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0xe3 + +#CHECK: vfa %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x09 0xba 0xe3 + +#CHECK: vfa %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x09 0xbe 0xe3 + #CHECK: vfadb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x30 0xe3 @@ -857,6 +1109,18 @@ #CHECK: vfadb %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x3e 0xe3 +#CHECK: vfae %v0, %v0, %v0, 11, 0 +0xe7 0x00 0x00 0x00 0xb0 0x82 + +#CHECK: vfae %v0, %v0, %v0, 11, 12 +0xe7 0x00 0x00 0xc0 0xb0 0x82 + +#CHECK: vfae %v18, %v3, %v20, 11, 0 +0xe7 0x23 0x40 0x00 0xba 0x82 + +#CHECK: vfae %v31, %v31, %v31, 11, 4 +0xe7 0xff 0xf0 0x40 0xbe 0x82 + #CHECK: vfaeb %v0, %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x82 @@ -920,6 +1184,15 @@ #CHECK: vfaezhs %v31, %v31, %v31, 8 0xe7 0xff 0xf0 0xb0 0x1e 0x82 +#CHECK: vfce %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0xe8 + +#CHECK: vfce %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x09 0xba 0xe8 + +#CHECK: vfce %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x09 0xbe 0xe8 + #CHECK: vfcedb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x30 0xe8 @@ -938,6 +1211,15 @@ #CHECK: vfcedbs %v31, %v31, %v31 0xe7 0xff 0xf0 0x10 0x3e 0xe8 +#CHECK: vfch %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0xeb + +#CHECK: vfch %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x09 0xba 0xeb + +#CHECK: vfch %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x09 0xbe 0xeb + #CHECK: vfchdb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x30 0xeb @@ -956,6 +1238,15 @@ #CHECK: vfchdbs %v31, %v31, %v31 0xe7 0xff 0xf0 0x10 0x3e 0xeb +#CHECK: vfche %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0xea + +#CHECK: vfche %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x09 0xba 0xea + +#CHECK: vfche %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x09 0xbe 0xea + #CHECK: vfchedb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x30 0xea @@ -974,6 +1265,15 @@ #CHECK: vfchedbs %v31, %v31, %v31 0xe7 0xff 0xf0 0x10 0x3e 0xea +#CHECK: vfd %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0xe5 + +#CHECK: vfd %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x09 0xba 0xe5 + +#CHECK: vfd %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x09 0xbe 0xe5 + #CHECK: vfddb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x30 0xe5 @@ -983,6 +1283,18 @@ #CHECK: vfddb %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x3e 0xe5 +#CHECK: vfee %v0, %v0, %v0, 11, 0 +0xe7 0x00 0x00 0x00 0xb0 0x80 + +#CHECK: vfee %v0, %v0, %v0, 11, 12 +0xe7 0x00 0x00 0xc0 0xb0 0x80 + +#CHECK: vfee %v18, %v3, %v20, 11, 0 +0xe7 0x23 0x40 0x00 0xba 0x80 + +#CHECK: vfee %v31, %v31, %v31, 11, 0 +0xe7 0xff 0xf0 0x00 0xbe 0x80 + #CHECK: vfeeb %v0, %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x80 @@ -1046,6 +1358,18 @@ #CHECK: vfeeh %v31, %v31, %v31, 0 0xe7 0xff 0xf0 0x00 0x1e 0x80 +#CHECK: vfene %v0, %v0, %v0, 11, 0 +0xe7 0x00 0x00 0x00 0xb0 0x81 + +#CHECK: vfene %v0, %v0, %v0, 11, 12 +0xe7 0x00 0x00 0xc0 0xb0 0x81 + +#CHECK: vfene %v18, %v3, %v20, 11, 0 +0xe7 0x23 0x40 0x00 0xba 0x81 + +#CHECK: vfene %v31, %v31, %v31, 11, 0 +0xe7 0xff 0xf0 0x00 0xbe 0x81 + #CHECK: vfeneb %v0, %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x81 @@ -1109,6 +1433,15 @@ #CHECK: vfeneh %v31, %v31, %v31, 0 0xe7 0xff 0xf0 0x00 0x1e 0x81 +#CHECK: vfi %v0, %v0, 11, 0, 0 +0xe7 0x00 0x00 0x00 0xb0 0xc7 + +#CHECK: vfi %v19, %v14, 11, 4, 10 +0xe7 0x3e 0x00 0xa4 0xb8 0xc7 + +#CHECK: vfi %v31, %v31, 11, 7, 15 +0xe7 0xff 0x00 0xf7 0xbc 0xc7 + #CHECK: vfidb %v0, %v0, 0, 0 0xe7 0x00 0x00 0x00 0x30 0xc7 @@ -1118,6 +1451,18 @@ #CHECK: vfidb %v31, %v31, 7, 15 0xe7 0xff 0x00 0xf7 0x3c 0xc7 +#CHECK: vistr %v0, %v0, 11, 0 +0xe7 0x00 0x00 0x00 0xb0 0x5c + +#CHECK: vistr %v0, %v0, 11, 12 +0xe7 0x00 0x00 0xc0 0xb0 0x5c + +#CHECK: vistr %v18, %v3, 11, 0 +0xe7 0x23 0x00 0x00 0xb8 0x5c + +#CHECK: vistr %v31, %v31, 11, 0 +0xe7 0xff 0x00 0x00 0xbc 0x5c + #CHECK: vistrb %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x5c @@ -1163,6 +1508,15 @@ #CHECK: vistrh %v31, %v31, 0 0xe7 0xff 0x00 0x00 0x1c 0x5c +#CHECK: vfma %v0, %v0, %v0, %v0, 9, 11 +0xe7 0x00 0x0b 0x09 0x00 0x8f + +#CHECK: vfma %v3, %v20, %v5, %v22, 9, 11 +0xe7 0x34 0x5b 0x09 0x65 0x8f + +#CHECK: vfma %v31, %v31, %v31, %v31, 9, 11 +0xe7 0xff 0xfb 0x09 0xff 0x8f + #CHECK: vfmadb %v0, %v0, %v0, %v0 0xe7 0x00 0x03 0x00 0x00 0x8f @@ -1172,6 +1526,15 @@ #CHECK: vfmadb %v31, %v31, %v31, %v31 0xe7 0xff 0xf3 0x00 0xff 0x8f +#CHECK: vfm %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0xe7 + +#CHECK: vfm %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x09 0xba 0xe7 + +#CHECK: vfm %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x09 0xbe 0xe7 + #CHECK: vfmdb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x30 0xe7 @@ -1181,6 +1544,15 @@ #CHECK: vfmdb %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x3e 0xe7 +#CHECK: vfms %v0, %v0, %v0, %v0, 9, 11 +0xe7 0x00 0x0b 0x09 0x00 0x8e + +#CHECK: vfms %v3, %v20, %v5, %v22, 9, 11 +0xe7 0x34 0x5b 0x09 0x65 0x8e + +#CHECK: vfms %v31, %v31, %v31, %v31, 9, 11 +0xe7 0xff 0xfb 0x09 0xff 0x8e + #CHECK: vfmsdb %v0, %v0, %v0, %v0 0xe7 0x00 0x03 0x00 0x00 0x8e @@ -1190,6 +1562,15 @@ #CHECK: vfmsdb %v31, %v31, %v31, %v31 0xe7 0xff 0xf3 0x00 0xff 0x8e +#CHECK: vfs %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0xe2 + +#CHECK: vfs %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x09 0xba 0xe2 + +#CHECK: vfs %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x09 0xbe 0xe2 + #CHECK: vfsdb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x30 0xe2 @@ -1235,6 +1616,15 @@ #CHECK: vgeg %v31, 4095(%v31,%r15), 1 0xe7 0xff 0xff 0xff 0x1c 0x12 +#CHECK: vgfma %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xbc + +#CHECK: vgfma %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xbc + +#CHECK: vgfma %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xbc + #CHECK: vgfmab %v0, %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xbc @@ -1271,6 +1661,15 @@ #CHECK: vgfmah %v31, %v31, %v31, %v31 0xe7 0xff 0xf1 0x00 0xff 0xbc +#CHECK: vgfm %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xb4 + +#CHECK: vgfm %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xb4 + +#CHECK: vgfm %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xb4 + #CHECK: vgfmb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xb4 @@ -1307,6 +1706,15 @@ #CHECK: vgfmh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xb4 +#CHECK: vgm %v0, 0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x46 + +#CHECK: vgm %v22, 55, 66, 11 +0xe7 0x60 0x37 0x42 0xb8 0x46 + +#CHECK: vgm %v31, 255, 255, 11 +0xe7 0xf0 0xff 0xff 0xb8 0x46 + #CHECK: vgmb %v0, 0, 0 0xe7 0x00 0x00 0x00 0x00 0x46 @@ -1361,6 +1769,15 @@ #CHECK: vlbb %v31, 4095(%r15,%r15), 15 0xe7 0xff 0xff 0xff 0xf8 0x07 +#CHECK: vlc %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xde + +#CHECK: vlc %v19, %v14, 11 +0xe7 0x3e 0x00 0x00 0xb8 0xde + +#CHECK: vlc %v31, %v31, 11 +0xe7 0xff 0x00 0x00 0xbc 0xde + #CHECK: vlcb %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xde @@ -1397,6 +1814,15 @@ #CHECK: vlch %v31, %v31 0xe7 0xff 0x00 0x00 0x1c 0xde +#CHECK: vlde %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0xc4 + +#CHECK: vlde %v19, %v14, 11, 9 +0xe7 0x3e 0x00 0x09 0xb8 0xc4 + +#CHECK: vlde %v31, %v31, 11, 9 +0xe7 0xff 0x00 0x09 0xbc 0xc4 + #CHECK: vldeb %v0, %v0 0xe7 0x00 0x00 0x00 0x20 0xc4 @@ -1415,6 +1841,15 @@ #CHECK: vleb %v31, 4095(%r15,%r15), 15 0xe7 0xff 0xff 0xff 0xf8 0x00 +#CHECK: vled %v0, %v0, 11, 0, 0 +0xe7 0x00 0x00 0x00 0xb0 0xc5 + +#CHECK: vled %v19, %v14, 11, 4, 10 +0xe7 0x3e 0x00 0xa4 0xb8 0xc5 + +#CHECK: vled %v31, %v31, 11, 7, 15 +0xe7 0xff 0x00 0xf7 0xbc 0xc5 + #CHECK: vledb %v0, %v0, 0, 0 0xe7 0x00 0x00 0x00 0x30 0xc5 @@ -1487,6 +1922,24 @@ #CHECK: vleih %v31, -1, 7 0xe7 0xf0 0xff 0xff 0x78 0x41 +#CHECK: vfpso %v0, %v0, 11, 9, 7 +0xe7 0x00 0x00 0x79 0xb0 0xcc + +#CHECK: vfpso %v19, %v14, 11, 9, 7 +0xe7 0x3e 0x00 0x79 0xb8 0xcc + +#CHECK: vfpso %v31, %v31, 11, 9, 7 +0xe7 0xff 0x00 0x79 0xbc 0xcc + +#CHECK: vfpsodb %v0, %v0, 7 +0xe7 0x00 0x00 0x70 0x30 0xcc + +#CHECK: vfpsodb %v19, %v14, 7 +0xe7 0x3e 0x00 0x70 0x38 0xcc + +#CHECK: vfpsodb %v31, %v31, 7 +0xe7 0xff 0x00 0x70 0x3c 0xcc + #CHECK: vflcdb %v0, %v0 0xe7 0x00 0x00 0x00 0x30 0xcc @@ -1514,6 +1967,15 @@ #CHECK: vflpdb %v31, %v31 0xe7 0xff 0x00 0x20 0x3c 0xcc +#CHECK: vlgv %r0, %v0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x21 + +#CHECK: vlgv %r2, %v19, 1383(%r4), 11 +0xe7 0x23 0x45 0x67 0xb4 0x21 + +#CHECK: vlgv %r15, %v31, 4095(%r15), 11 +0xe7 0xff 0xff 0xff 0xb4 0x21 + #CHECK: vlgvb %r0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x21 @@ -1550,6 +2012,15 @@ #CHECK: vlgvh %r15, %v31, 4095(%r15) 0xe7 0xff 0xff 0xff 0x14 0x21 +#CHECK: vfsq %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0xce + +#CHECK: vfsq %v19, %v14, 11, 9 +0xe7 0x3e 0x00 0x09 0xb8 0xce + +#CHECK: vfsq %v31, %v31, 11, 9 +0xe7 0xff 0x00 0x09 0xbc 0xce + #CHECK: vfsqdb %v0, %v0 0xe7 0x00 0x00 0x00 0x30 0xce @@ -1559,6 +2030,15 @@ #CHECK: vfsqdb %v31, %v31 0xe7 0xff 0x00 0x00 0x3c 0xce +#CHECK: vftci %v0, %v0, 0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0x4a + +#CHECK: vftci %v19, %v4, 1383, 11, 9 +0xe7 0x34 0x56 0x79 0xb8 0x4a + +#CHECK: vftci %v31, %v31, 4095, 11, 9 +0xe7 0xff 0xff 0xf9 0xbc 0x4a + #CHECK: vftcidb %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x30 0x4a @@ -1577,6 +2057,15 @@ #CHECK: vll %v31, %r15, 4095(%r15) 0xe7 0xff 0xff 0xff 0x08 0x37 +#CHECK: vllez %v0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x04 + +#CHECK: vllez %v17, 2475(%r7,%r8), 11 +0xe7 0x17 0x89 0xab 0xb8 0x04 + +#CHECK: vllez %v31, 4095(%r15,%r15), 11 +0xe7 0xff 0xff 0xff 0xb8 0x04 + #CHECK: vllezb %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x04 @@ -1622,6 +2111,15 @@ #CHECK: vlm %v31, %v31, 4095(%r15) 0xe7 0xff 0xff 0xff 0x0c 0x36 +#CHECK: vlp %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xdf + +#CHECK: vlp %v19, %v14, 11 +0xe7 0x3e 0x00 0x00 0xb8 0xdf + +#CHECK: vlp %v31, %v31, 11 +0xe7 0xff 0x00 0x00 0xbc 0xdf + #CHECK: vlpb %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xdf @@ -1667,6 +2165,15 @@ #CHECK: vlr %v31, %v31 0xe7 0xff 0x00 0x00 0x0c 0x56 +#CHECK: vlrep %v0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x05 + +#CHECK: vlrep %v17, 2475(%r7,%r8), 11 +0xe7 0x17 0x89 0xab 0xb8 0x05 + +#CHECK: vlrep %v31, 4095(%r15,%r15), 11 +0xe7 0xff 0xff 0xff 0xb8 0x05 + #CHECK: vlrepb %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x05 @@ -1703,6 +2210,15 @@ #CHECK: vlreph %v31, 4095(%r15,%r15) 0xe7 0xff 0xff 0xff 0x18 0x05 +#CHECK: vlvg %v0, %r0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x22 + +#CHECK: vlvg %v18, %r3, 1383(%r4), 11 +0xe7 0x23 0x45 0x67 0xb8 0x22 + +#CHECK: vlvg %v31, %r15, 4095(%r15), 11 +0xe7 0xff 0xff 0xff 0xb8 0x22 + #CHECK: vlvgb %v0, %r0, 0 0xe7 0x00 0x00 0x00 0x00 0x22 @@ -1748,6 +2264,15 @@ #CHECK: vlvgp %v31, %r15, %r15 0xe7 0xff 0xf0 0x00 0x08 0x62 +#CHECK: vmae %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xae + +#CHECK: vmae %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xae + +#CHECK: vmae %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xae + #CHECK: vmaeb %v0, %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xae @@ -1775,6 +2300,15 @@ #CHECK: vmaeh %v31, %v31, %v31, %v31 0xe7 0xff 0xf1 0x00 0xff 0xae +#CHECK: vmah %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xab + +#CHECK: vmah %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xab + +#CHECK: vmah %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xab + #CHECK: vmahb %v0, %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xab @@ -1802,6 +2336,15 @@ #CHECK: vmahh %v31, %v31, %v31, %v31 0xe7 0xff 0xf1 0x00 0xff 0xab +#CHECK: vmal %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xaa + +#CHECK: vmal %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xaa + +#CHECK: vmal %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xaa + #CHECK: vmalb %v0, %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xaa @@ -1811,6 +2354,15 @@ #CHECK: vmalb %v31, %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0xff 0xaa +#CHECK: vmale %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xac + +#CHECK: vmale %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xac + +#CHECK: vmale %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xac + #CHECK: vmaleb %v0, %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xac @@ -1847,6 +2399,15 @@ #CHECK: vmalf %v31, %v31, %v31, %v31 0xe7 0xff 0xf2 0x00 0xff 0xaa +#CHECK: vmalh %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xa9 + +#CHECK: vmalh %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xa9 + +#CHECK: vmalh %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xa9 + #CHECK: vmalhb %v0, %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xa9 @@ -1883,6 +2444,15 @@ #CHECK: vmalhw %v31, %v31, %v31, %v31 0xe7 0xff 0xf1 0x00 0xff 0xaa +#CHECK: vmalo %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xad + +#CHECK: vmalo %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xad + +#CHECK: vmalo %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xad + #CHECK: vmalob %v0, %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xad @@ -1910,6 +2480,15 @@ #CHECK: vmaloh %v31, %v31, %v31, %v31 0xe7 0xff 0xf1 0x00 0xff 0xad +#CHECK: vmao %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xaf + +#CHECK: vmao %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xaf + +#CHECK: vmao %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xaf + #CHECK: vmaob %v0, %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xaf @@ -1937,6 +2516,15 @@ #CHECK: vmaoh %v31, %v31, %v31, %v31 0xe7 0xff 0xf1 0x00 0xff 0xaf +#CHECK: vme %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xa6 + +#CHECK: vme %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xa6 + +#CHECK: vme %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xa6 + #CHECK: vmeb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xa6 @@ -1964,6 +2552,15 @@ #CHECK: vmeh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xa6 +#CHECK: vmh %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xa3 + +#CHECK: vmh %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xa3 + +#CHECK: vmh %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xa3 + #CHECK: vmhb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xa3 @@ -1991,6 +2588,15 @@ #CHECK: vmhh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xa3 +#CHECK: vml %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xa2 + +#CHECK: vml %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xa2 + +#CHECK: vml %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xa2 + #CHECK: vmlb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xa2 @@ -2009,6 +2615,15 @@ #CHECK: vmlf %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x2e 0xa2 +#CHECK: vmle %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xa4 + +#CHECK: vmle %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xa4 + +#CHECK: vmle %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xa4 + #CHECK: vmleb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xa4 @@ -2036,6 +2651,15 @@ #CHECK: vmleh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xa4 +#CHECK: vmlh %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xa1 + +#CHECK: vmlh %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xa1 + +#CHECK: vmlh %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xa1 + #CHECK: vmlhb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xa1 @@ -2072,6 +2696,15 @@ #CHECK: vmlhw %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xa2 +#CHECK: vmlo %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xa5 + +#CHECK: vmlo %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xa5 + +#CHECK: vmlo %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xa5 + #CHECK: vmlob %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xa5 @@ -2099,6 +2732,15 @@ #CHECK: vmloh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xa5 +#CHECK: vmn %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xfe + +#CHECK: vmn %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xfe + +#CHECK: vmn %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xfe + #CHECK: vmnb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xfe @@ -2135,6 +2777,15 @@ #CHECK: vmnh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xfe +#CHECK: vmnl %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xfc + +#CHECK: vmnl %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xfc + +#CHECK: vmnl %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xfc + #CHECK: vmnlb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xfc @@ -2171,6 +2822,15 @@ #CHECK: vmnlh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xfc +#CHECK: vmo %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xa7 + +#CHECK: vmo %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xa7 + +#CHECK: vmo %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xa7 + #CHECK: vmob %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xa7 @@ -2198,6 +2858,15 @@ #CHECK: vmoh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xa7 +#CHECK: vmrh %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x61 + +#CHECK: vmrh %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0x61 + +#CHECK: vmrh %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0x61 + #CHECK: vmrhb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0x61 @@ -2234,6 +2903,15 @@ #CHECK: vmrhh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0x61 +#CHECK: vmrl %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x60 + +#CHECK: vmrl %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0x60 + +#CHECK: vmrl %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0x60 + #CHECK: vmrlb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0x60 @@ -2270,6 +2948,15 @@ #CHECK: vmrlh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0x60 +#CHECK: vmx %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xff + +#CHECK: vmx %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xff + +#CHECK: vmx %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xff + #CHECK: vmxb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xff @@ -2306,6 +2993,15 @@ #CHECK: vmxh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0xff +#CHECK: vmxl %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xfd + +#CHECK: vmxl %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xfd + +#CHECK: vmxl %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xfd + #CHECK: vmxlb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xfd @@ -2396,6 +3092,15 @@ #CHECK: vperm %v31, %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0xff 0x8c +#CHECK: vpk %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x94 + +#CHECK: vpk %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0x94 + +#CHECK: vpk %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0x94 + #CHECK: vpkf %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x20 0x94 @@ -2423,6 +3128,15 @@ #CHECK: vpkh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0x94 +#CHECK: vpkls %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x90 0xb0 0x95 + +#CHECK: vpkls %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x90 0xba 0x95 + +#CHECK: vpkls %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x90 0xbe 0x95 + #CHECK: vpklsf %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x20 0x95 @@ -2459,6 +3173,15 @@ #CHECK: vpklsh %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x1e 0x95 +#CHECK: vpks %v0, %v0, %v0, 11, 9 +0xe7 0x00 0x00 0x90 0xb0 0x97 + +#CHECK: vpks %v18, %v3, %v20, 11, 9 +0xe7 0x23 0x40 0x90 0xba 0x97 + +#CHECK: vpks %v31, %v31, %v31, 11, 9 +0xe7 0xff 0xf0 0x90 0xbe 0x97 + #CHECK: vpksf %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x20 0x97 @@ -2504,6 +3227,15 @@ #CHECK: vpopct %v31, %v31 0xe7 0xff 0x00 0x00 0x0c 0x50 +#CHECK: vrep %v0, %v0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x4d + +#CHECK: vrep %v19, %v4, 22136, 11 +0xe7 0x34 0x56 0x78 0xb8 0x4d + +#CHECK: vrep %v31, %v31, 65535, 11 +0xe7 0xff 0xff 0xff 0xbc 0x4d + #CHECK: vrepb %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x4d @@ -2540,6 +3272,15 @@ #CHECK: vreph %v31, %v31, 65535 0xe7 0xff 0xff 0xff 0x1c 0x4d +#CHECK: vrepi %v0, 0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x45 + +#CHECK: vrepi %v23, -30293, 11 +0xe7 0x70 0x89 0xab 0xb8 0x45 + +#CHECK: vrepi %v31, -1, 11 +0xe7 0xf0 0xff 0xff 0xb8 0x45 + #CHECK: vrepib %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x45 @@ -2576,6 +3317,15 @@ #CHECK: vrepih %v31, -1 0xe7 0xf0 0xff 0xff 0x18 0x45 +#CHECK: vs %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xf7 + +#CHECK: vs %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xf7 + +#CHECK: vs %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xf7 + #CHECK: vsb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xf7 @@ -2585,6 +3335,15 @@ #CHECK: vsb %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x0e 0xf7 +#CHECK: vsbi %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xbf + +#CHECK: vsbi %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xbf + +#CHECK: vsbi %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xbf + #CHECK: vsbiq %v0, %v0, %v0, %v0 0xe7 0x00 0x04 0x00 0x00 0xbf @@ -2594,6 +3353,15 @@ #CHECK: vsbiq %v31, %v31, %v31, %v31 0xe7 0xff 0xf4 0x00 0xff 0xbf +#CHECK: vsbcbi %v0, %v0, %v0, %v0, 11 +0xe7 0x00 0x0b 0x00 0x00 0xbd + +#CHECK: vsbcbi %v3, %v20, %v5, %v22, 11 +0xe7 0x34 0x5b 0x00 0x65 0xbd + +#CHECK: vsbcbi %v31, %v31, %v31, %v31, 11 +0xe7 0xff 0xfb 0x00 0xff 0xbd + #CHECK: vsbcbiq %v0, %v0, %v0, %v0 0xe7 0x00 0x04 0x00 0x00 0xbd @@ -2603,6 +3371,15 @@ #CHECK: vsbcbiq %v31, %v31, %v31, %v31 0xe7 0xff 0xf4 0x00 0xff 0xbd +#CHECK: vscbi %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xf5 + +#CHECK: vscbi %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0xf5 + +#CHECK: vscbi %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0xf5 + #CHECK: vscbib %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xf5 @@ -2666,6 +3443,15 @@ #CHECK: vsceg %v31, 4095(%v31,%r15), 1 0xe7 0xff 0xff 0xff 0x1c 0x1a +#CHECK: vseg %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x5f + +#CHECK: vseg %v19, %v14, 11 +0xe7 0x3e 0x00 0x00 0xb8 0x5f + +#CHECK: vseg %v31, %v31, 11 +0xe7 0xff 0x00 0x00 0xbc 0x5f + #CHECK: vsegb %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0x5f @@ -2864,6 +3650,18 @@ #CHECK: vstm %v31, %v31, 4095(%r15) 0xe7 0xff 0xff 0xff 0x0c 0x3e +#CHECK: vstrc %v0, %v0, %v0, %v0, 11, 0 +0xe7 0x00 0x0b 0x00 0x00 0x8a + +#CHECK: vstrc %v0, %v0, %v0, %v0, 11, 12 +0xe7 0x00 0x0b 0xc0 0x00 0x8a + +#CHECK: vstrc %v18, %v3, %v20, %v5, 11, 0 +0xe7 0x23 0x4b 0x00 0x5a 0x8a + +#CHECK: vstrc %v31, %v31, %v31, %v31, 11, 4 +0xe7 0xff 0xfb 0x40 0xff 0x8a + #CHECK: vstrcb %v0, %v0, %v0, %v0, 0 0xe7 0x00 0x00 0x00 0x00 0x8a @@ -2927,6 +3725,15 @@ #CHECK: vstrczhs %v31, %v31, %v31, %v31, 8 0xe7 0xff 0xf1 0xb0 0xff 0x8a +#CHECK: vsumg %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x65 + +#CHECK: vsumg %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0x65 + +#CHECK: vsumg %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0x65 + #CHECK: vsumgh %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x10 0x65 @@ -2945,6 +3752,15 @@ #CHECK: vsumgf %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x2e 0x65 +#CHECK: vsumq %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x67 + +#CHECK: vsumq %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0x67 + +#CHECK: vsumq %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0x67 + #CHECK: vsumqf %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x20 0x67 @@ -2963,6 +3779,15 @@ #CHECK: vsumqg %v31, %v31, %v31 0xe7 0xff 0xf0 0x00 0x3e 0x67 +#CHECK: vsum %v0, %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0x64 + +#CHECK: vsum %v18, %v3, %v20, 11 +0xe7 0x23 0x40 0x00 0xba 0x64 + +#CHECK: vsum %v31, %v31, %v31, 11 +0xe7 0xff 0xf0 0x00 0xbe 0x64 + #CHECK: vsumb %v0, %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0x64 @@ -2990,6 +3815,15 @@ #CHECK: vtm %v31, %v31 0xe7 0xff 0x00 0x00 0x0c 0xd8 +#CHECK: vuph %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xd7 + +#CHECK: vuph %v19, %v14, 11 +0xe7 0x3e 0x00 0x00 0xb8 0xd7 + +#CHECK: vuph %v31, %v31, 11 +0xe7 0xff 0x00 0x00 0xbc 0xd7 + #CHECK: vuphb %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xd7 @@ -3017,6 +3851,15 @@ #CHECK: vuphh %v31, %v31 0xe7 0xff 0x00 0x00 0x1c 0xd7 +#CHECK: vuplh %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xd5 + +#CHECK: vuplh %v19, %v14, 11 +0xe7 0x3e 0x00 0x00 0xb8 0xd5 + +#CHECK: vuplh %v31, %v31, 11 +0xe7 0xff 0x00 0x00 0xbc 0xd5 + #CHECK: vuplhb %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xd5 @@ -3044,6 +3887,15 @@ #CHECK: vuplhh %v31, %v31 0xe7 0xff 0x00 0x00 0x1c 0xd5 +#CHECK: vupl %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xd6 + +#CHECK: vupl %v19, %v14, 11 +0xe7 0x3e 0x00 0x00 0xb8 0xd6 + +#CHECK: vupl %v31, %v31, 11 +0xe7 0xff 0x00 0x00 0xbc 0xd6 + #CHECK: vuplb %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xd6 @@ -3071,6 +3923,15 @@ #CHECK: vuplhw %v31, %v31 0xe7 0xff 0x00 0x00 0x1c 0xd6 +#CHECK: vupll %v0, %v0, 11 +0xe7 0x00 0x00 0x00 0xb0 0xd4 + +#CHECK: vupll %v19, %v14, 11 +0xe7 0x3e 0x00 0x00 0xb8 0xd4 + +#CHECK: vupll %v31, %v31, 11 +0xe7 0xff 0x00 0x00 0xbc 0xd4 + #CHECK: vupllb %v0, %v0 0xe7 0x00 0x00 0x00 0x00 0xd4 @@ -3152,6 +4013,15 @@ #CHECK: wfadb %v31, %v31, %v31 0xe7 0xff 0xf0 0x08 0x3e 0xe3 +#CHECK: wfc %f0, %f0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0xcb + +#CHECK: wfc %v19, %f14, 11, 9 +0xe7 0x3e 0x00 0x09 0xb8 0xcb + +#CHECK: wfc %v31, %v31, 11, 9 +0xe7 0xff 0x00 0x09 0xbc 0xcb + #CHECK: wfcdb %f0, %f0 0xe7 0x00 0x00 0x00 0x30 0xcb @@ -3233,6 +4103,15 @@ #CHECK: wfidb %v31, %v31, 7, 15 0xe7 0xff 0x00 0xff 0x3c 0xc7 +#CHECK: wfk %f0, %f0, 11, 9 +0xe7 0x00 0x00 0x09 0xb0 0xca + +#CHECK: wfk %v19, %f14, 11, 9 +0xe7 0x3e 0x00 0x09 0xb8 0xca + +#CHECK: wfk %v31, %v31, 11, 9 +0xe7 0xff 0x00 0x09 0xbc 0xca + #CHECK: wfkdb %f0, %f0 0xe7 0x00 0x00 0x00 0x30 0xca @@ -3242,6 +4121,15 @@ #CHECK: wfkdb %v31, %v31 0xe7 0xff 0x00 0x00 0x3c 0xca +#CHECK: wfpsodb %f0, %f0, 7 +0xe7 0x00 0x00 0x78 0x30 0xcc + +#CHECK: wfpsodb %v19, %f14, 7 +0xe7 0x3e 0x00 0x78 0x38 0xcc + +#CHECK: wfpsodb %v31, %v31, 7 +0xe7 0xff 0x00 0x78 0x3c 0xcc + #CHECK: wflcdb %f0, %f0 0xe7 0x00 0x00 0x08 0x30 0xcc diff --git a/llvm/test/MC/SystemZ/insn-bad-z13.s b/llvm/test/MC/SystemZ/insn-bad-z13.s index b0fbab5..9407d86 100644 --- a/llvm/test/MC/SystemZ/insn-bad-z13.s +++ b/llvm/test/MC/SystemZ/insn-bad-z13.s @@ -20,6 +20,26 @@ lcbb %r0, 0(%v1,%r2), 0 #CHECK: error: invalid operand +#CHECK: vcdg %v0, %v0, 0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vcdg %v0, %v0, 0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vcdg %v0, %v0, 0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vcdg %v0, %v0, 0, 16, 0 +#CHECK: error: invalid operand +#CHECK: vcdg %v0, %v0, -1, 0, 0 +#CHECK: error: invalid operand +#CHECK: vcdg %v0, %v0, 16, 0, 0 + + vcdg %v0, %v0, 0, 0, -1 + vcdg %v0, %v0, 0, 0, 16 + vcdg %v0, %v0, 0, -1, 0 + vcdg %v0, %v0, 0, 16, 0 + vcdg %v0, %v0, -1, 0, 0 + vcdg %v0, %v0, 16, 0, 0 + +#CHECK: error: invalid operand #CHECK: vcdgb %v0, %v0, 0, -1 #CHECK: error: invalid operand #CHECK: vcdgb %v0, %v0, 0, 16 @@ -34,6 +54,26 @@ vcdgb %v0, %v0, 16, 0 #CHECK: error: invalid operand +#CHECK: vcdlg %v0, %v0, 0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vcdlg %v0, %v0, 0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vcdlg %v0, %v0, 0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vcdlg %v0, %v0, 0, 16, 0 +#CHECK: error: invalid operand +#CHECK: vcdlg %v0, %v0, -1, 0, 0 +#CHECK: error: invalid operand +#CHECK: vcdlg %v0, %v0, 16, 0, 0 + + vcdlg %v0, %v0, 0, 0, -1 + vcdlg %v0, %v0, 0, 0, 16 + vcdlg %v0, %v0, 0, -1, 0 + vcdlg %v0, %v0, 0, 16, 0 + vcdlg %v0, %v0, -1, 0, 0 + vcdlg %v0, %v0, 16, 0, 0 + +#CHECK: error: invalid operand #CHECK: vcdlgb %v0, %v0, 0, -1 #CHECK: error: invalid operand #CHECK: vcdlgb %v0, %v0, 0, 16 @@ -48,6 +88,26 @@ vcdlgb %v0, %v0, 16, 0 #CHECK: error: invalid operand +#CHECK: vcgd %v0, %v0, 0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vcgd %v0, %v0, 0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vcgd %v0, %v0, 0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vcgd %v0, %v0, 0, 16, 0 +#CHECK: error: invalid operand +#CHECK: vcgd %v0, %v0, -1, 0, 0 +#CHECK: error: invalid operand +#CHECK: vcgd %v0, %v0, 16, 0, 0 + + vcgd %v0, %v0, 0, 0, -1 + vcgd %v0, %v0, 0, 0, 16 + vcgd %v0, %v0, 0, -1, 0 + vcgd %v0, %v0, 0, 16, 0 + vcgd %v0, %v0, -1, 0, 0 + vcgd %v0, %v0, 16, 0, 0 + +#CHECK: error: invalid operand #CHECK: vcgdb %v0, %v0, 0, -1 #CHECK: error: invalid operand #CHECK: vcgdb %v0, %v0, 0, 16 @@ -62,6 +122,26 @@ vcgdb %v0, %v0, 16, 0 #CHECK: error: invalid operand +#CHECK: vclgd %v0, %v0, 0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vclgd %v0, %v0, 0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vclgd %v0, %v0, 0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vclgd %v0, %v0, 0, 16, 0 +#CHECK: error: invalid operand +#CHECK: vclgd %v0, %v0, -1, 0, 0 +#CHECK: error: invalid operand +#CHECK: vclgd %v0, %v0, 16, 0, 0 + + vclgd %v0, %v0, 0, 0, -1 + vclgd %v0, %v0, 0, 0, 16 + vclgd %v0, %v0, 0, -1, 0 + vclgd %v0, %v0, 0, 16, 0 + vclgd %v0, %v0, -1, 0, 0 + vclgd %v0, %v0, 16, 0, 0 + +#CHECK: error: invalid operand #CHECK: vclgdb %v0, %v0, 0, -1 #CHECK: error: invalid operand #CHECK: vclgdb %v0, %v0, 0, 16 @@ -76,6 +156,20 @@ vclgdb %v0, %v0, 16, 0 #CHECK: error: invalid operand +#CHECK: verim %v0, %v0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: verim %v0, %v0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: verim %v0, %v0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: verim %v0, %v0, %v0, 256, 0 + + verim %v0, %v0, %v0, 0, -1 + verim %v0, %v0, %v0, 0, 16 + verim %v0, %v0, %v0, -1, 0 + verim %v0, %v0, %v0, 256, 0 + +#CHECK: error: invalid operand #CHECK: verimb %v0, %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: verimb %v0, %v0, %v0, 256 @@ -108,6 +202,20 @@ verimh %v0, %v0, %v0, 256 #CHECK: error: invalid operand +#CHECK: verll %v0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: verll %v0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: verll %v0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: verll %v0, %v0, 4096, 0 + + verll %v0, %v0, 0, -1 + verll %v0, %v0, 0, 16 + verll %v0, %v0, -1, 0 + verll %v0, %v0, 4096, 0 + +#CHECK: error: invalid operand #CHECK: verllb %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: verllb %v0, %v0, 4096 @@ -140,6 +248,20 @@ verllh %v0, %v0, 4096 #CHECK: error: invalid operand +#CHECK: vesl %v0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vesl %v0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vesl %v0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vesl %v0, %v0, 4096, 0 + + vesl %v0, %v0, 0, -1 + vesl %v0, %v0, 0, 16 + vesl %v0, %v0, -1, 0 + vesl %v0, %v0, 4096, 0 + +#CHECK: error: invalid operand #CHECK: veslb %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: veslb %v0, %v0, 4096 @@ -172,6 +294,20 @@ veslh %v0, %v0, 4096 #CHECK: error: invalid operand +#CHECK: vesra %v0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vesra %v0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vesra %v0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vesra %v0, %v0, 4096, 0 + + vesra %v0, %v0, 0, -1 + vesra %v0, %v0, 0, 16 + vesra %v0, %v0, -1, 0 + vesra %v0, %v0, 4096, 0 + +#CHECK: error: invalid operand #CHECK: vesrab %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: vesrab %v0, %v0, 4096 @@ -204,6 +340,20 @@ vesrah %v0, %v0, 4096 #CHECK: error: invalid operand +#CHECK: vesrl %v0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vesrl %v0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vesrl %v0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vesrl %v0, %v0, 4096, 0 + + vesrl %v0, %v0, 0, -1 + vesrl %v0, %v0, 0, 16 + vesrl %v0, %v0, -1, 0 + vesrl %v0, %v0, 4096, 0 + +#CHECK: error: invalid operand #CHECK: vesrlb %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: vesrlb %v0, %v0, 4096 @@ -236,6 +386,26 @@ vesrlh %v0, %v0, 4096 #CHECK: error: invalid operand +#CHECK: vfae %v0, %v0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vfae %v0, %v0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vfae %v0, %v0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vfae %v0, %v0, %v0, 16, 0 +#CHECK: error: too few operands +#CHECK: vfae %v0, %v0, %v0 +#CHECK: error: invalid operand +#CHECK: vfae %v0, %v0, %v0, 0, 0, 0 + + vfae %v0, %v0, %v0, 0, -1 + vfae %v0, %v0, %v0, 0, 16 + vfae %v0, %v0, %v0, -1, 0 + vfae %v0, %v0, %v0, 16, 0 + vfae %v0, %v0, %v0 + vfae %v0, %v0, %v0, 0, 0, 0 + +#CHECK: error: invalid operand #CHECK: vfaeb %v0, %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: vfaeb %v0, %v0, %v0, 16 @@ -320,6 +490,26 @@ vfaezfs %v0, %v0, %v0, 0, 0 #CHECK: error: invalid operand +#CHECK: vfee %v0, %v0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vfee %v0, %v0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vfee %v0, %v0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vfee %v0, %v0, %v0, 16, 0 +#CHECK: error: too few operands +#CHECK: vfee %v0, %v0, %v0 +#CHECK: error: invalid operand +#CHECK: vfee %v0, %v0, %v0, 0, 0, 0 + + vfee %v0, %v0, %v0, 0, -1 + vfee %v0, %v0, %v0, 0, 16 + vfee %v0, %v0, %v0, -1, 0 + vfee %v0, %v0, %v0, 16, 0 + vfee %v0, %v0, %v0 + vfee %v0, %v0, %v0, 0, 0, 0 + +#CHECK: error: invalid operand #CHECK: vfeeb %v0, %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: vfeeb %v0, %v0, %v0, 16 @@ -434,6 +624,26 @@ vfeezhs %v0, %v0, %v0, 0 #CHECK: error: invalid operand +#CHECK: vfi %v0, %v0, 0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vfi %v0, %v0, 0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vfi %v0, %v0, 0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vfi %v0, %v0, 0, 16, 0 +#CHECK: error: invalid operand +#CHECK: vfi %v0, %v0, -1, 0, 0 +#CHECK: error: invalid operand +#CHECK: vfi %v0, %v0, 16, 0, 0 + + vfi %v0, %v0, 0, 0, -1 + vfi %v0, %v0, 0, 0, 16 + vfi %v0, %v0, 0, -1, 0 + vfi %v0, %v0, 0, 16, 0 + vfi %v0, %v0, -1, 0, 0 + vfi %v0, %v0, 16, 0, 0 + +#CHECK: error: invalid operand #CHECK: vfidb %v0, %v0, 0, -1 #CHECK: error: invalid operand #CHECK: vfidb %v0, %v0, 0, 16 @@ -448,6 +658,26 @@ vfidb %v0, %v0, 16, 0 #CHECK: error: invalid operand +#CHECK: vftci %v0, %v0, 0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vftci %v0, %v0, 0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vftci %v0, %v0, 0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vftci %v0, %v0, 0, 16, 0 +#CHECK: error: invalid operand +#CHECK: vftci %v0, %v0, -1, 0, 0 +#CHECK: error: invalid operand +#CHECK: vftci %v0, %v0, 4096, 0, 0 + + vftci %v0, %v0, 0, 0, -1 + vftci %v0, %v0, 0, 0, 16 + vftci %v0, %v0, 0, -1, 0 + vftci %v0, %v0, 0, 16, 0 + vftci %v0, %v0, -1, 0, 0 + vftci %v0, %v0, 4096, 0, 0 + +#CHECK: error: invalid operand #CHECK: vftcidb %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: vftcidb %v0, %v0, 4096 @@ -504,62 +734,102 @@ vgeg %v0, 4096(%v0,%r1), 0 #CHECK: error: invalid operand -#CHECK: vgmb %v0, 0, -1 +#CHECK: vgm %v0, 0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vgm %v0, 0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vgm %v0, 0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vgm %v0, 0, 256, 0 +#CHECK: error: invalid operand +#CHECK: vgm %v0, -1, 0, 0 +#CHECK: error: invalid operand +#CHECK: vgm %v0, 256, 0, 0 + + vgm %v0, 0, 0, -1 + vgm %v0, 0, 0, 16 + vgm %v0, 0, -1, 0 + vgm %v0, 0, 256, 0 + vgm %v0, -1, 0, 0 + vgm %v0, 256, 0, 0 + #CHECK: error: invalid operand #CHECK: vgmb %v0, 0, -1 #CHECK: error: invalid operand +#CHECK: vgmb %v0, 0, 256 +#CHECK: error: invalid operand #CHECK: vgmb %v0, -1, 0 #CHECK: error: invalid operand #CHECK: vgmb %v0, 256, 0 vgmb %v0, 0, -1 - vgmb %v0, 0, -1 + vgmb %v0, 0, 256 vgmb %v0, -1, 0 vgmb %v0, 256, 0 #CHECK: error: invalid operand #CHECK: vgmf %v0, 0, -1 #CHECK: error: invalid operand -#CHECK: vgmf %v0, 0, -1 +#CHECK: vgmf %v0, 0, 256 #CHECK: error: invalid operand #CHECK: vgmf %v0, -1, 0 #CHECK: error: invalid operand #CHECK: vgmf %v0, 256, 0 vgmf %v0, 0, -1 - vgmf %v0, 0, -1 + vgmf %v0, 0, 256 vgmf %v0, -1, 0 vgmf %v0, 256, 0 #CHECK: error: invalid operand #CHECK: vgmg %v0, 0, -1 #CHECK: error: invalid operand -#CHECK: vgmg %v0, 0, -1 +#CHECK: vgmg %v0, 0, 256 #CHECK: error: invalid operand #CHECK: vgmg %v0, -1, 0 #CHECK: error: invalid operand #CHECK: vgmg %v0, 256, 0 vgmg %v0, 0, -1 - vgmg %v0, 0, -1 + vgmg %v0, 0, 256 vgmg %v0, -1, 0 vgmg %v0, 256, 0 #CHECK: error: invalid operand #CHECK: vgmh %v0, 0, -1 #CHECK: error: invalid operand -#CHECK: vgmh %v0, 0, -1 +#CHECK: vgmh %v0, 0, 256 #CHECK: error: invalid operand #CHECK: vgmh %v0, -1, 0 #CHECK: error: invalid operand #CHECK: vgmh %v0, 256, 0 vgmh %v0, 0, -1 - vgmh %v0, 0, -1 + vgmh %v0, 0, 256 vgmh %v0, -1, 0 vgmh %v0, 256, 0 #CHECK: error: invalid operand +#CHECK: vistr %v0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vistr %v0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vistr %v0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vistr %v0, %v0, 16, 0 +#CHECK: error: too few operands +#CHECK: vistr %v0, %v0 +#CHECK: error: invalid operand +#CHECK: vistr %v0, %v0, 0, 0, 0 + + vistr %v0, %v0, 0, -1 + vistr %v0, %v0, 0, 16 + vistr %v0, %v0, -1, 0 + vistr %v0, %v0, 16, 0 + vistr %v0, %v0 + vistr %v0, %v0, 0, 0, 0 + +#CHECK: error: invalid operand #CHECK: vistrb %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: vistrb %v0, %v0, 16 @@ -671,6 +941,26 @@ vleb %v0, 0(%v1,%r2), 0 #CHECK: error: invalid operand +#CHECK: vled %v0, %v0, 0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vled %v0, %v0, 0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vled %v0, %v0, 0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vled %v0, %v0, 0, 16, 0 +#CHECK: error: invalid operand +#CHECK: vled %v0, %v0, -1, 0, 0 +#CHECK: error: invalid operand +#CHECK: vled %v0, %v0, 16, 0, 0 + + vled %v0, %v0, 0, 0, -1 + vled %v0, %v0, 0, 0, 16 + vled %v0, %v0, 0, -1, 0 + vled %v0, %v0, 0, 16, 0 + vled %v0, %v0, -1, 0, 0 + vled %v0, %v0, 16, 0, 0 + +#CHECK: error: invalid operand #CHECK: vledb %v0, %v0, 0, -1 #CHECK: error: invalid operand #CHECK: vledb %v0, %v0, 0, 16 @@ -792,6 +1082,23 @@ vleih %v0, 32768, 0 #CHECK: error: invalid operand +#CHECK: vlgv %r0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vlgv %r0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vlgv %r0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vlgv %r0, %v0, 4096, 0 +#CHECK: error: %r0 used in an address +#CHECK: vlgv %r0, %v0, 0(%r0), 0 + + vlgv %r0, %v0, 0, -1 + vlgv %r0, %v0, 0, 16 + vlgv %r0, %v0, -1, 0 + vlgv %r0, %v0, 4096, 0 + vlgv %r0, %v0, 0(%r0), 0 + +#CHECK: error: invalid operand #CHECK: vlgvb %r0, %v0, -1 #CHECK: error: invalid operand #CHECK: vlgvb %r0, %v0, 4096 @@ -847,6 +1154,23 @@ vll %v0, %r0, 0(%r0) #CHECK: error: invalid operand +#CHECK: vllez %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vllez %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vllez %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vllez %v0, 4096, 0 +#CHECK: error: invalid use of vector addressing +#CHECK: vllez %v0, 0(%v1,%r2), 0 + + vllez %v0, 0, -1 + vllez %v0, 0, 16 + vllez %v0, -1, 0 + vllez %v0, 4096, 0 + vllez %v0, 0(%v1,%r2), 0 + +#CHECK: error: invalid operand #CHECK: vllezb %v0, -1 #CHECK: error: invalid operand #CHECK: vllezb %v0, 4096 @@ -899,6 +1223,23 @@ vlm %v0, %v0, 4096 #CHECK: error: invalid operand +#CHECK: vlrep %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vlrep %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vlrep %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vlrep %v0, 4096, 0 +#CHECK: error: invalid use of vector addressing +#CHECK: vlrep %v0, 0(%v1,%r2), 0 + + vlrep %v0, 0, -1 + vlrep %v0, 0, 16 + vlrep %v0, -1, 0 + vlrep %v0, 4096, 0 + vlrep %v0, 0(%v1,%r2), 0 + +#CHECK: error: invalid operand #CHECK: vlrepb %v0, -1 #CHECK: error: invalid operand #CHECK: vlrepb %v0, 4096 @@ -943,6 +1284,23 @@ vlreph %v0, 0(%v1,%r2) #CHECK: error: invalid operand +#CHECK: vlvg %v0, %r0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vlvg %v0, %r0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vlvg %v0, %r0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vlvg %v0, %r0, 4096, 0 +#CHECK: error: %r0 used in an address +#CHECK: vlvg %v0, %r0, 0(%r0), 0 + + vlvg %v0, %r0, 0, -1 + vlvg %v0, %r0, 0, 16 + vlvg %v0, %r0, -1, 0 + vlvg %v0, %r0, 4096, 0 + vlvg %v0, %r0, 0(%r0), 0 + +#CHECK: error: invalid operand #CHECK: vlvgb %v0, %r0, -1 #CHECK: error: invalid operand #CHECK: vlvgb %v0, %r0, 4096 @@ -987,6 +1345,26 @@ vlvgh %v0, %r0, 0(%r0) #CHECK: error: invalid operand +#CHECK: vfene %v0, %v0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vfene %v0, %v0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vfene %v0, %v0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vfene %v0, %v0, %v0, 16, 0 +#CHECK: error: too few operands +#CHECK: vfene %v0, %v0, %v0 +#CHECK: error: invalid operand +#CHECK: vfene %v0, %v0, %v0, 0, 0, 0 + + vfene %v0, %v0, %v0, 0, -1 + vfene %v0, %v0, %v0, 0, 16 + vfene %v0, %v0, %v0, -1, 0 + vfene %v0, %v0, %v0, 16, 0 + vfene %v0, %v0, %v0 + vfene %v0, %v0, %v0, 0, 0, 0 + +#CHECK: error: invalid operand #CHECK: vfeneb %v0, %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: vfeneb %v0, %v0, %v0, 16 @@ -1101,6 +1479,20 @@ vpdi %v0, %v0, %v0, 16 #CHECK: error: invalid operand +#CHECK: vrep %v0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vrep %v0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vrep %v0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vrep %v0, %v0, 65536, 0 + + vrep %v0, %v0, 0, -1 + vrep %v0, %v0, 0, 16 + vrep %v0, %v0, -1, 0 + vrep %v0, %v0, 65536, 0 + +#CHECK: error: invalid operand #CHECK: vrepb %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: vrepb %v0, %v0, 65536 @@ -1133,6 +1525,20 @@ vreph %v0, %v0, 65536 #CHECK: error: invalid operand +#CHECK: vrepi %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vrepi %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vrepi %v0, -32769, 0 +#CHECK: error: invalid operand +#CHECK: vrepi %v0, 32768, 0 + + vrepi %v0, 0, -1 + vrepi %v0, 0, 16 + vrepi %v0, -32769, 0 + vrepi %v0, 32768, 0 + +#CHECK: error: invalid operand #CHECK: vrepib %v0, -32769 #CHECK: error: invalid operand #CHECK: vrepib %v0, 32768 @@ -1311,6 +1717,26 @@ vstm %v0, %v0, 4096 #CHECK: error: invalid operand +#CHECK: vstrc %v0, %v0, %v0, %v0, 0, -1 +#CHECK: error: invalid operand +#CHECK: vstrc %v0, %v0, %v0, %v0, 0, 16 +#CHECK: error: invalid operand +#CHECK: vstrc %v0, %v0, %v0, %v0, -1, 0 +#CHECK: error: invalid operand +#CHECK: vstrc %v0, %v0, %v0, %v0, 16, 0 +#CHECK: error: too few operands +#CHECK: vstrc %v0, %v0, %v0, %v0 +#CHECK: error: invalid operand +#CHECK: vstrc %v0, %v0, %v0, %v0, 0, 0, 0 + + vstrc %v0, %v0, %v0, %v0, 0, -1 + vstrc %v0, %v0, %v0, %v0, 0, 16 + vstrc %v0, %v0, %v0, %v0, -1, 0 + vstrc %v0, %v0, %v0, %v0, 16, 0 + vstrc %v0, %v0, %v0, %v0 + vstrc %v0, %v0, %v0, %v0, 0, 0, 0 + +#CHECK: error: invalid operand #CHECK: vstrcb %v0, %v0, %v0, %v0, -1 #CHECK: error: invalid operand #CHECK: vstrcb %v0, %v0, %v0, %v0, 16 diff --git a/llvm/test/MC/SystemZ/insn-good-z13.s b/llvm/test/MC/SystemZ/insn-good-z13.s index 5c25658..8946fde 100644 --- a/llvm/test/MC/SystemZ/insn-good-z13.s +++ b/llvm/test/MC/SystemZ/insn-good-z13.s @@ -18,6 +18,20 @@ lcbb %r15, 0, 0 lcbb %r2, 1383(%r3,%r4), 8 +#CHECK: va %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf3] +#CHECK: va %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xf3] +#CHECK: va %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf3] +#CHECK: va %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf3] +#CHECK: va %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xf3] +#CHECK: va %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xf3] + + va %v0, %v0, %v0, 0 + va %v0, %v0, %v0, 15 + va %v0, %v0, %v31, 0 + va %v0, %v31, %v0, 0 + va %v31, %v0, %v0, 0 + va %v18, %v3, %v20, 11 + #CHECK: vab %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf3] #CHECK: vab %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf3] #CHECK: vab %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf3] @@ -30,6 +44,36 @@ vab %v31, %v0, %v0 vab %v18, %v3, %v20 +#CHECK: vac %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xbb] +#CHECK: vac %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xbb] +#CHECK: vac %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xbb] +#CHECK: vac %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xbb] +#CHECK: vac %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xbb] +#CHECK: vac %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xbb] +#CHECK: vac %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xbb] + + vac %v0, %v0, %v0, %v0, 0 + vac %v0, %v0, %v0, %v0, 15 + vac %v0, %v0, %v0, %v31, 0 + vac %v0, %v0, %v31, %v0, 0 + vac %v0, %v31, %v0, %v0, 0 + vac %v31, %v0, %v0, %v0, 0 + vac %v13, %v17, %v21, %v25, 11 + +#CHECK: vacc %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf1] +#CHECK: vacc %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xf1] +#CHECK: vacc %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf1] +#CHECK: vacc %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf1] +#CHECK: vacc %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xf1] +#CHECK: vacc %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xf1] + + vacc %v0, %v0, %v0, 0 + vacc %v0, %v0, %v0, 15 + vacc %v0, %v0, %v31, 0 + vacc %v0, %v31, %v0, 0 + vacc %v31, %v0, %v0, 0 + vacc %v18, %v3, %v20, 11 + #CHECK: vaccb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf1] #CHECK: vaccb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf1] #CHECK: vaccb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf1] @@ -42,6 +86,22 @@ vaccb %v31, %v0, %v0 vaccb %v18, %v3, %v20 +#CHECK: vaccc %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xb9] +#CHECK: vaccc %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xb9] +#CHECK: vaccc %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xb9] +#CHECK: vaccc %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xb9] +#CHECK: vaccc %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xb9] +#CHECK: vaccc %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xb9] +#CHECK: vaccc %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xb9] + + vaccc %v0, %v0, %v0, %v0, 0 + vaccc %v0, %v0, %v0, %v0, 15 + vaccc %v0, %v0, %v0, %v31, 0 + vaccc %v0, %v0, %v31, %v0, 0 + vaccc %v0, %v31, %v0, %v0, 0 + vaccc %v31, %v0, %v0, %v0, 0 + vaccc %v13, %v17, %v21, %v25, 11 + #CHECK: vacccq %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x04,0x00,0x00,0xb9] #CHECK: vacccq %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x04,0x00,0xf1,0xb9] #CHECK: vacccq %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf4,0x00,0x02,0xb9] @@ -166,6 +226,20 @@ vaq %v31, %v0, %v0 vaq %v18, %v3, %v20 +#CHECK: vavg %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf2] +#CHECK: vavg %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xf2] +#CHECK: vavg %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf2] +#CHECK: vavg %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf2] +#CHECK: vavg %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xf2] +#CHECK: vavg %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xf2] + + vavg %v0, %v0, %v0, 0 + vavg %v0, %v0, %v0, 15 + vavg %v0, %v0, %v31, 0 + vavg %v0, %v31, %v0, 0 + vavg %v31, %v0, %v0, 0 + vavg %v18, %v3, %v20, 11 + #CHECK: vavgb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf2] #CHECK: vavgb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf2] #CHECK: vavgb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf2] @@ -214,6 +288,20 @@ vavgh %v31, %v0, %v0 vavgh %v18, %v3, %v20 +#CHECK: vavgl %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf0] +#CHECK: vavgl %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xf0] +#CHECK: vavgl %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf0] +#CHECK: vavgl %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf0] +#CHECK: vavgl %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xf0] +#CHECK: vavgl %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xf0] + + vavgl %v0, %v0, %v0, 0 + vavgl %v0, %v0, %v0, 15 + vavgl %v0, %v0, %v31, 0 + vavgl %v0, %v31, %v0, 0 + vavgl %v31, %v0, %v0, 0 + vavgl %v18, %v3, %v20, 11 + #CHECK: vavglb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf0] #CHECK: vavglb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf0] #CHECK: vavglb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf0] @@ -262,6 +350,24 @@ vavglh %v31, %v0, %v0 vavglh %v18, %v3, %v20 +#CHECK: vcdg %v0, %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xc3] +#CHECK: vcdg %v0, %v0, 15, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xc3] +#CHECK: vcdg %v0, %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xc3] +#CHECK: vcdg %v0, %v0, 0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x00,0xc3] +#CHECK: vcdg %v0, %v0, 0, 12, 0 # encoding: [0xe7,0x00,0x00,0x0c,0x00,0xc3] +#CHECK: vcdg %v0, %v31, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xc3] +#CHECK: vcdg %v31, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xc3] +#CHECK: vcdg %v14, %v17, 11, 4, 10 # encoding: [0xe7,0xe1,0x00,0xa4,0xb4,0xc3] + + vcdg %v0, %v0, 0, 0, 0 + vcdg %v0, %v0, 15, 0, 0 + vcdg %v0, %v0, 0, 0, 15 + vcdg %v0, %v0, 0, 4, 0 + vcdg %v0, %v0, 0, 12, 0 + vcdg %v0, %v31, 0, 0, 0 + vcdg %v31, %v0, 0, 0, 0 + vcdg %v14, %v17, 11, 4, 10 + #CHECK: vcdgb %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xc3] #CHECK: vcdgb %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x30,0xc3] #CHECK: vcdgb %v0, %v0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x30,0xc3] @@ -278,6 +384,24 @@ vcdgb %v31, %v0, 0, 0 vcdgb %v14, %v17, 4, 10 +#CHECK: vcdlg %v0, %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xc1] +#CHECK: vcdlg %v0, %v0, 15, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xc1] +#CHECK: vcdlg %v0, %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xc1] +#CHECK: vcdlg %v0, %v0, 0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x00,0xc1] +#CHECK: vcdlg %v0, %v0, 0, 12, 0 # encoding: [0xe7,0x00,0x00,0x0c,0x00,0xc1] +#CHECK: vcdlg %v0, %v31, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xc1] +#CHECK: vcdlg %v31, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xc1] +#CHECK: vcdlg %v14, %v17, 11, 4, 10 # encoding: [0xe7,0xe1,0x00,0xa4,0xb4,0xc1] + + vcdlg %v0, %v0, 0, 0, 0 + vcdlg %v0, %v0, 15, 0, 0 + vcdlg %v0, %v0, 0, 0, 15 + vcdlg %v0, %v0, 0, 4, 0 + vcdlg %v0, %v0, 0, 12, 0 + vcdlg %v0, %v31, 0, 0, 0 + vcdlg %v31, %v0, 0, 0, 0 + vcdlg %v14, %v17, 11, 4, 10 + #CHECK: vcdlgb %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xc1] #CHECK: vcdlgb %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x30,0xc1] #CHECK: vcdlgb %v0, %v0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x30,0xc1] @@ -306,6 +430,22 @@ vcksm %v31, %v0, %v0 vcksm %v18, %v3, %v20 +#CHECK: vceq %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf8] +#CHECK: vceq %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xf8] +#CHECK: vceq %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xf8] +#CHECK: vceq %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf8] +#CHECK: vceq %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf8] +#CHECK: vceq %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xf8] +#CHECK: vceq %v18, %v3, %v20, 11, 9 # encoding: [0xe7,0x23,0x40,0x90,0xba,0xf8] + + vceq %v0, %v0, %v0, 0, 0 + vceq %v0, %v0, %v0, 15, 0 + vceq %v0, %v0, %v0, 0, 15 + vceq %v0, %v0, %v31, 0, 0 + vceq %v0, %v31, %v0, 0, 0 + vceq %v31, %v0, %v0, 0, 0 + vceq %v18, %v3, %v20, 11, 9 + #CHECK: vceqb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf8] #CHECK: vceqb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf8] #CHECK: vceqb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf8] @@ -362,6 +502,24 @@ vceqh %v18, %v3, %v20 vceqhs %v5, %v22, %v7 +#CHECK: vcgd %v0, %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xc2] +#CHECK: vcgd %v0, %v0, 15, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xc2] +#CHECK: vcgd %v0, %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xc2] +#CHECK: vcgd %v0, %v0, 0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x00,0xc2] +#CHECK: vcgd %v0, %v0, 0, 12, 0 # encoding: [0xe7,0x00,0x00,0x0c,0x00,0xc2] +#CHECK: vcgd %v0, %v31, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xc2] +#CHECK: vcgd %v31, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xc2] +#CHECK: vcgd %v14, %v17, 11, 4, 10 # encoding: [0xe7,0xe1,0x00,0xa4,0xb4,0xc2] + + vcgd %v0, %v0, 0, 0, 0 + vcgd %v0, %v0, 15, 0, 0 + vcgd %v0, %v0, 0, 0, 15 + vcgd %v0, %v0, 0, 4, 0 + vcgd %v0, %v0, 0, 12, 0 + vcgd %v0, %v31, 0, 0, 0 + vcgd %v31, %v0, 0, 0, 0 + vcgd %v14, %v17, 11, 4, 10 + #CHECK: vcgdb %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xc2] #CHECK: vcgdb %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x30,0xc2] #CHECK: vcgdb %v0, %v0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x30,0xc2] @@ -378,6 +536,22 @@ vcgdb %v31, %v0, 0, 0 vcgdb %v14, %v17, 4, 10 +#CHECK: vch %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xfb] +#CHECK: vch %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xfb] +#CHECK: vch %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xfb] +#CHECK: vch %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xfb] +#CHECK: vch %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xfb] +#CHECK: vch %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xfb] +#CHECK: vch %v18, %v3, %v20, 11, 9 # encoding: [0xe7,0x23,0x40,0x90,0xba,0xfb] + + vch %v0, %v0, %v0, 0, 0 + vch %v0, %v0, %v0, 15, 0 + vch %v0, %v0, %v0, 0, 15 + vch %v0, %v0, %v31, 0, 0 + vch %v0, %v31, %v0, 0, 0 + vch %v31, %v0, %v0, 0, 0 + vch %v18, %v3, %v20, 11, 9 + #CHECK: vchb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xfb] #CHECK: vchb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xfb] #CHECK: vchb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xfb] @@ -434,6 +608,22 @@ vchh %v18, %v3, %v20 vchhs %v5, %v22, %v7 +#CHECK: vchl %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf9] +#CHECK: vchl %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xf9] +#CHECK: vchl %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xf9] +#CHECK: vchl %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf9] +#CHECK: vchl %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf9] +#CHECK: vchl %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xf9] +#CHECK: vchl %v18, %v3, %v20, 11, 9 # encoding: [0xe7,0x23,0x40,0x90,0xba,0xf9] + + vchl %v0, %v0, %v0, 0, 0 + vchl %v0, %v0, %v0, 15, 0 + vchl %v0, %v0, %v0, 0, 15 + vchl %v0, %v0, %v31, 0, 0 + vchl %v0, %v31, %v0, 0, 0 + vchl %v31, %v0, %v0, 0, 0 + vchl %v18, %v3, %v20, 11, 9 + #CHECK: vchlb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf9] #CHECK: vchlb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf9] #CHECK: vchlb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf9] @@ -490,6 +680,24 @@ vchlh %v18, %v3, %v20 vchlhs %v5, %v22, %v7 +#CHECK: vclgd %v0, %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xc0] +#CHECK: vclgd %v0, %v0, 15, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xc0] +#CHECK: vclgd %v0, %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xc0] +#CHECK: vclgd %v0, %v0, 0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x00,0xc0] +#CHECK: vclgd %v0, %v0, 0, 12, 0 # encoding: [0xe7,0x00,0x00,0x0c,0x00,0xc0] +#CHECK: vclgd %v0, %v31, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xc0] +#CHECK: vclgd %v31, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xc0] +#CHECK: vclgd %v14, %v17, 11, 4, 10 # encoding: [0xe7,0xe1,0x00,0xa4,0xb4,0xc0] + + vclgd %v0, %v0, 0, 0, 0 + vclgd %v0, %v0, 15, 0, 0 + vclgd %v0, %v0, 0, 0, 15 + vclgd %v0, %v0, 0, 4, 0 + vclgd %v0, %v0, 0, 12, 0 + vclgd %v0, %v31, 0, 0, 0 + vclgd %v31, %v0, 0, 0, 0 + vclgd %v14, %v17, 11, 4, 10 + #CHECK: vclgdb %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xc0] #CHECK: vclgdb %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x30,0xc0] #CHECK: vclgdb %v0, %v0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x30,0xc0] @@ -506,6 +714,22 @@ vclgdb %v31, %v0, 0, 0 vclgdb %v14, %v17, 4, 10 +#CHECK: vclz %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x53] +#CHECK: vclz %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x53] +#CHECK: vclz %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x53] +#CHECK: vclz %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x53] +#CHECK: vclz %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x53] +#CHECK: vclz %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x53] +#CHECK: vclz %v14, %v17, 11 # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0x53] + + vclz %v0, %v0, 0 + vclz %v0, %v0, 15 + vclz %v0, %v15, 0 + vclz %v0, %v31, 0 + vclz %v15, %v0, 0 + vclz %v31, %v0, 0 + vclz %v14, %v17, 11 + #CHECK: vclzb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x53] #CHECK: vclzb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x53] #CHECK: vclzb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x53] @@ -562,6 +786,22 @@ vclzh %v31, %v0 vclzh %v14, %v17 +#CHECK: vctz %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x52] +#CHECK: vctz %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x52] +#CHECK: vctz %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x52] +#CHECK: vctz %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x52] +#CHECK: vctz %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x52] +#CHECK: vctz %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x52] +#CHECK: vctz %v14, %v17, 11 # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0x52] + + vctz %v0, %v0, 0 + vctz %v0, %v0, 15 + vctz %v0, %v15, 0 + vctz %v0, %v31, 0 + vctz %v15, %v0, 0 + vctz %v31, %v0, 0 + vctz %v14, %v17, 11 + #CHECK: vctzb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x52] #CHECK: vctzb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x52] #CHECK: vctzb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x52] @@ -618,6 +858,22 @@ vctzh %v31, %v0 vctzh %v14, %v17 +#CHECK: vec %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xdb] +#CHECK: vec %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xdb] +#CHECK: vec %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xdb] +#CHECK: vec %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xdb] +#CHECK: vec %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xdb] +#CHECK: vec %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xdb] +#CHECK: vec %v14, %v17, 11 # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0xdb] + + vec %v0, %v0, 0 + vec %v0, %v0, 15 + vec %v0, %v15, 0 + vec %v0, %v31, 0 + vec %v15, %v0, 0 + vec %v31, %v0, 0 + vec %v14, %v17, 11 + #CHECK: vecb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xdb] #CHECK: vecb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xdb] #CHECK: vecb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xdb] @@ -674,6 +930,22 @@ vech %v31, %v0 vech %v14, %v17 +#CHECK: vecl %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xd9] +#CHECK: vecl %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xd9] +#CHECK: vecl %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xd9] +#CHECK: vecl %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xd9] +#CHECK: vecl %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xd9] +#CHECK: vecl %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xd9] +#CHECK: vecl %v14, %v17, 11 # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0xd9] + + vecl %v0, %v0, 0 + vecl %v0, %v0, 15 + vecl %v0, %v15, 0 + vecl %v0, %v31, 0 + vecl %v15, %v0, 0 + vecl %v31, %v0, 0 + vecl %v14, %v17, 11 + #CHECK: veclb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xd9] #CHECK: veclb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xd9] #CHECK: veclb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xd9] @@ -730,6 +1002,22 @@ veclh %v31, %v0 veclh %v14, %v17 +#CHECK: verim %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x72] +#CHECK: verim %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x72] +#CHECK: verim %v0, %v0, %v0, 255, 0 # encoding: [0xe7,0x00,0x00,0xff,0x00,0x72] +#CHECK: verim %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x72] +#CHECK: verim %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x72] +#CHECK: verim %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x72] +#CHECK: verim %v13, %v17, %v21, 121, 11 # encoding: [0xe7,0xd1,0x50,0x79,0xb6,0x72] + + verim %v0, %v0, %v0, 0, 0 + verim %v0, %v0, %v0, 0, 15 + verim %v0, %v0, %v0, 255, 0 + verim %v0, %v0, %v31, 0, 0 + verim %v0, %v31, %v0, 0, 0 + verim %v31, %v0, %v0, 0, 0 + verim %v13, %v17, %v21, 0x79, 11 + #CHECK: verimb %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x72] #CHECK: verimb %v0, %v0, %v0, 255 # encoding: [0xe7,0x00,0x00,0xff,0x00,0x72] #CHECK: verimb %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x72] @@ -786,6 +1074,20 @@ verimh %v31, %v0, %v0, 0 verimh %v13, %v17, %v21, 0x79 +#CHECK: verllv %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x73] +#CHECK: verllv %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x73] +#CHECK: verllv %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x73] +#CHECK: verllv %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x73] +#CHECK: verllv %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x73] +#CHECK: verllv %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0x73] + + verllv %v0, %v0, %v0, 0 + verllv %v0, %v0, %v0, 15 + verllv %v0, %v0, %v31, 0 + verllv %v0, %v31, %v0, 0 + verllv %v31, %v0, %v0, 0 + verllv %v18, %v3, %v20, 11 + #CHECK: verllvb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x73] #CHECK: verllvb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x73] #CHECK: verllvb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x73] @@ -834,6 +1136,22 @@ verllvh %v31, %v0, %v0 verllvh %v18, %v3, %v20 +#CHECK: verll %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x33] +#CHECK: verll %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x33] +#CHECK: verll %v0, %v0, 4095, 0 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x33] +#CHECK: verll %v0, %v0, 0(%r15), 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x33] +#CHECK: verll %v0, %v31, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x33] +#CHECK: verll %v31, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x33] +#CHECK: verll %v14, %v17, 1074(%r5), 11 # encoding: [0xe7,0xe1,0x54,0x32,0xb4,0x33] + + verll %v0, %v0, 0, 0 + verll %v0, %v0, 0, 15 + verll %v0, %v0, 4095, 0 + verll %v0, %v0, 0(%r15), 0 + verll %v0, %v31, 0, 0 + verll %v31, %v0, 0, 0 + verll %v14, %v17, 1074(%r5), 11 + #CHECK: verllb %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x33] #CHECK: verllb %v0, %v0, 4095 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x33] #CHECK: verllb %v0, %v0, 0(%r15) # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x33] @@ -890,6 +1208,20 @@ verllh %v31, %v0, 0 verllh %v14, %v17, 1074(%r5) +#CHECK: veslv %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x70] +#CHECK: veslv %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x70] +#CHECK: veslv %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x70] +#CHECK: veslv %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x70] +#CHECK: veslv %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x70] +#CHECK: veslv %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0x70] + + veslv %v0, %v0, %v0, 0 + veslv %v0, %v0, %v0, 15 + veslv %v0, %v0, %v31, 0 + veslv %v0, %v31, %v0, 0 + veslv %v31, %v0, %v0, 0 + veslv %v18, %v3, %v20, 11 + #CHECK: veslvb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x70] #CHECK: veslvb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x70] #CHECK: veslvb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x70] @@ -938,6 +1270,22 @@ veslvh %v31, %v0, %v0 veslvh %v18, %v3, %v20 +#CHECK: vesl %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x30] +#CHECK: vesl %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x30] +#CHECK: vesl %v0, %v0, 4095, 0 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x30] +#CHECK: vesl %v0, %v0, 0(%r15), 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x30] +#CHECK: vesl %v0, %v31, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x30] +#CHECK: vesl %v31, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x30] +#CHECK: vesl %v14, %v17, 1074(%r5), 11 # encoding: [0xe7,0xe1,0x54,0x32,0xb4,0x30] + + vesl %v0, %v0, 0, 0 + vesl %v0, %v0, 0, 15 + vesl %v0, %v0, 4095, 0 + vesl %v0, %v0, 0(%r15), 0 + vesl %v0, %v31, 0, 0 + vesl %v31, %v0, 0, 0 + vesl %v14, %v17, 1074(%r5), 11 + #CHECK: veslb %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x30] #CHECK: veslb %v0, %v0, 4095 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x30] #CHECK: veslb %v0, %v0, 0(%r15) # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x30] @@ -994,6 +1342,20 @@ veslh %v31, %v0, 0 veslh %v14, %v17, 1074(%r5) +#CHECK: vesrav %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x7a] +#CHECK: vesrav %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x7a] +#CHECK: vesrav %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x7a] +#CHECK: vesrav %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x7a] +#CHECK: vesrav %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x7a] +#CHECK: vesrav %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0x7a] + + vesrav %v0, %v0, %v0, 0 + vesrav %v0, %v0, %v0, 15 + vesrav %v0, %v0, %v31, 0 + vesrav %v0, %v31, %v0, 0 + vesrav %v31, %v0, %v0, 0 + vesrav %v18, %v3, %v20, 11 + #CHECK: vesravb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x7a] #CHECK: vesravb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x7a] #CHECK: vesravb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x7a] @@ -1042,6 +1404,22 @@ vesravh %v31, %v0, %v0 vesravh %v18, %v3, %v20 +#CHECK: vesra %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x3a] +#CHECK: vesra %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x3a] +#CHECK: vesra %v0, %v0, 4095, 0 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x3a] +#CHECK: vesra %v0, %v0, 0(%r15), 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x3a] +#CHECK: vesra %v0, %v31, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x3a] +#CHECK: vesra %v31, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x3a] +#CHECK: vesra %v14, %v17, 1074(%r5), 11 # encoding: [0xe7,0xe1,0x54,0x32,0xb4,0x3a] + + vesra %v0, %v0, 0, 0 + vesra %v0, %v0, 0, 15 + vesra %v0, %v0, 4095, 0 + vesra %v0, %v0, 0(%r15), 0 + vesra %v0, %v31, 0, 0 + vesra %v31, %v0, 0, 0 + vesra %v14, %v17, 1074(%r5), 11 + #CHECK: vesrab %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x3a] #CHECK: vesrab %v0, %v0, 4095 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x3a] #CHECK: vesrab %v0, %v0, 0(%r15) # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x3a] @@ -1098,6 +1476,20 @@ vesrah %v31, %v0, 0 vesrah %v14, %v17, 1074(%r5) +#CHECK: vesrlv %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x78] +#CHECK: vesrlv %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x78] +#CHECK: vesrlv %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x78] +#CHECK: vesrlv %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x78] +#CHECK: vesrlv %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x78] +#CHECK: vesrlv %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0x78] + + vesrlv %v0, %v0, %v0, 0 + vesrlv %v0, %v0, %v0, 15 + vesrlv %v0, %v0, %v31, 0 + vesrlv %v0, %v31, %v0, 0 + vesrlv %v31, %v0, %v0, 0 + vesrlv %v18, %v3, %v20, 11 + #CHECK: vesrlvb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x78] #CHECK: vesrlvb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x78] #CHECK: vesrlvb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x78] @@ -1146,6 +1538,22 @@ vesrlvh %v31, %v0, %v0 vesrlvh %v18, %v3, %v20 +#CHECK: vesrl %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x38] +#CHECK: vesrl %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x38] +#CHECK: vesrl %v0, %v0, 4095, 0 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x38] +#CHECK: vesrl %v0, %v0, 0(%r15), 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x38] +#CHECK: vesrl %v0, %v31, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x38] +#CHECK: vesrl %v31, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x38] +#CHECK: vesrl %v14, %v17, 1074(%r5), 11 # encoding: [0xe7,0xe1,0x54,0x32,0xb4,0x38] + + vesrl %v0, %v0, 0, 0 + vesrl %v0, %v0, 0, 15 + vesrl %v0, %v0, 4095, 0 + vesrl %v0, %v0, 0(%r15), 0 + vesrl %v0, %v31, 0, 0 + vesrl %v31, %v0, 0, 0 + vesrl %v14, %v17, 1074(%r5), 11 + #CHECK: vesrlb %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x38] #CHECK: vesrlb %v0, %v0, 4095 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x38] #CHECK: vesrlb %v0, %v0, 0(%r15) # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x38] @@ -1202,6 +1610,22 @@ vesrlh %v31, %v0, 0 vesrlh %v14, %v17, 1074(%r5) +#CHECK: vfa %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xe3] +#CHECK: vfa %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xe3] +#CHECK: vfa %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xe3] +#CHECK: vfa %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xe3] +#CHECK: vfa %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xe3] +#CHECK: vfa %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xe3] +#CHECK: vfa %v18, %v3, %v20, 11, 9 # encoding: [0xe7,0x23,0x40,0x09,0xba,0xe3] + + vfa %v0, %v0, %v0, 0, 0 + vfa %v0, %v0, %v0, 15, 0 + vfa %v0, %v0, %v0, 0, 15 + vfa %v0, %v0, %v31, 0, 0 + vfa %v0, %v31, %v0, 0, 0 + vfa %v31, %v0, %v0, 0, 0 + vfa %v18, %v3, %v20, 11, 9 + #CHECK: vfadb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xe3] #CHECK: vfadb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x32,0xe3] #CHECK: vfadb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x34,0xe3] @@ -1214,6 +1638,34 @@ vfadb %v31, %v0, %v0 vfadb %v18, %v3, %v20 +#CHECK: vfae %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x82] +#CHECK: vfae %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x82] +#CHECK: vfae %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x82] +#CHECK: vfae %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x82] +#CHECK: vfae %v0, %v0, %v0, 0, 12 # encoding: [0xe7,0x00,0x00,0xc0,0x00,0x82] +#CHECK: vfae %v0, %v0, %v15, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x82] +#CHECK: vfae %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x82] +#CHECK: vfae %v0, %v15, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x82] +#CHECK: vfae %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x82] +#CHECK: vfae %v15, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x82] +#CHECK: vfae %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x82] +#CHECK: vfae %v18, %v3, %v20, 11, 4 # encoding: [0xe7,0x23,0x40,0x40,0xba,0x82] +#CHECK: vfae %v18, %v3, %v20, 0, 15 # encoding: [0xe7,0x23,0x40,0xf0,0x0a,0x82] + + vfae %v0, %v0, %v0, 0 + vfae %v0, %v0, %v0, 15 + vfae %v0, %v0, %v0, 0, 0 + vfae %v0, %v0, %v0, 15, 0 + vfae %v0, %v0, %v0, 0, 12 + vfae %v0, %v0, %v15, 0 + vfae %v0, %v0, %v31, 0 + vfae %v0, %v15, %v0, 0 + vfae %v0, %v31, %v0, 0 + vfae %v15, %v0, %v0, 0 + vfae %v31, %v0, %v0, 0 + vfae %v18, %v3, %v20, 11, 4 + vfae %v18, %v3, %v20, 0, 15 + #CHECK: vfaeb %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x82] #CHECK: vfaeb %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x82] #CHECK: vfaeb %v0, %v0, %v0, 12 # encoding: [0xe7,0x00,0x00,0xc0,0x00,0x82] @@ -1310,6 +1762,24 @@ vfaezhs %v18, %v3, %v20, 8 vfaezhs %v18, %v3, %v20, 15 +#CHECK: vfce %v0, %v0, %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xe8] +#CHECK: vfce %v0, %v0, %v0, 15, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xe8] +#CHECK: vfce %v0, %v0, %v0, 0, 15, 0 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xe8] +#CHECK: vfce %v0, %v0, %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xe8] +#CHECK: vfce %v0, %v0, %v31, 0, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xe8] +#CHECK: vfce %v0, %v31, %v0, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xe8] +#CHECK: vfce %v31, %v0, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xe8] +#CHECK: vfce %v18, %v3, %v20, 11, 9, 7 # encoding: [0xe7,0x23,0x40,0x79,0xba,0xe8] + + vfce %v0, %v0, %v0, 0, 0, 0 + vfce %v0, %v0, %v0, 15, 0, 0 + vfce %v0, %v0, %v0, 0, 15, 0 + vfce %v0, %v0, %v0, 0, 0, 15 + vfce %v0, %v0, %v31, 0, 0, 0 + vfce %v0, %v31, %v0, 0, 0, 0 + vfce %v31, %v0, %v0, 0, 0, 0 + vfce %v18, %v3, %v20, 11, 9, 7 + #CHECK: vfcedb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xe8] #CHECK: vfcedb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x32,0xe8] #CHECK: vfcedb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x34,0xe8] @@ -1334,6 +1804,24 @@ vfcedbs %v31, %v0, %v0 vfcedbs %v18, %v3, %v20 +#CHECK: vfch %v0, %v0, %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xeb] +#CHECK: vfch %v0, %v0, %v0, 15, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xeb] +#CHECK: vfch %v0, %v0, %v0, 0, 15, 0 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xeb] +#CHECK: vfch %v0, %v0, %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xeb] +#CHECK: vfch %v0, %v0, %v31, 0, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xeb] +#CHECK: vfch %v0, %v31, %v0, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xeb] +#CHECK: vfch %v31, %v0, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xeb] +#CHECK: vfch %v18, %v3, %v20, 11, 9, 7 # encoding: [0xe7,0x23,0x40,0x79,0xba,0xeb] + + vfch %v0, %v0, %v0, 0, 0, 0 + vfch %v0, %v0, %v0, 15, 0, 0 + vfch %v0, %v0, %v0, 0, 15, 0 + vfch %v0, %v0, %v0, 0, 0, 15 + vfch %v0, %v0, %v31, 0, 0, 0 + vfch %v0, %v31, %v0, 0, 0, 0 + vfch %v31, %v0, %v0, 0, 0, 0 + vfch %v18, %v3, %v20, 11, 9, 7 + #CHECK: vfchdb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xeb] #CHECK: vfchdb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x32,0xeb] #CHECK: vfchdb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x34,0xeb] @@ -1358,6 +1846,24 @@ vfchdbs %v31, %v0, %v0 vfchdbs %v18, %v3, %v20 +#CHECK: vfche %v0, %v0, %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xea] +#CHECK: vfche %v0, %v0, %v0, 15, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xea] +#CHECK: vfche %v0, %v0, %v0, 0, 15, 0 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xea] +#CHECK: vfche %v0, %v0, %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xea] +#CHECK: vfche %v0, %v0, %v31, 0, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xea] +#CHECK: vfche %v0, %v31, %v0, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xea] +#CHECK: vfche %v31, %v0, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xea] +#CHECK: vfche %v18, %v3, %v20, 11, 9, 7 # encoding: [0xe7,0x23,0x40,0x79,0xba,0xea] + + vfche %v0, %v0, %v0, 0, 0, 0 + vfche %v0, %v0, %v0, 15, 0, 0 + vfche %v0, %v0, %v0, 0, 15, 0 + vfche %v0, %v0, %v0, 0, 0, 15 + vfche %v0, %v0, %v31, 0, 0, 0 + vfche %v0, %v31, %v0, 0, 0, 0 + vfche %v31, %v0, %v0, 0, 0, 0 + vfche %v18, %v3, %v20, 11, 9, 7 + #CHECK: vfchedb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xea] #CHECK: vfchedb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x32,0xea] #CHECK: vfchedb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x34,0xea] @@ -1382,6 +1888,22 @@ vfchedbs %v31, %v0, %v0 vfchedbs %v18, %v3, %v20 +#CHECK: vfd %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xe5] +#CHECK: vfd %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xe5] +#CHECK: vfd %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xe5] +#CHECK: vfd %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xe5] +#CHECK: vfd %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xe5] +#CHECK: vfd %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xe5] +#CHECK: vfd %v18, %v3, %v20, 11, 9 # encoding: [0xe7,0x23,0x40,0x09,0xba,0xe5] + + vfd %v0, %v0, %v0, 0, 0 + vfd %v0, %v0, %v0, 15, 0 + vfd %v0, %v0, %v0, 0, 15 + vfd %v0, %v0, %v31, 0, 0 + vfd %v0, %v31, %v0, 0, 0 + vfd %v31, %v0, %v0, 0, 0 + vfd %v18, %v3, %v20, 11, 9 + #CHECK: vfddb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xe5] #CHECK: vfddb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x32,0xe5] #CHECK: vfddb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x34,0xe5] @@ -1394,6 +1916,34 @@ vfddb %v31, %v0, %v0 vfddb %v18, %v3, %v20 +#CHECK: vfee %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x80] +#CHECK: vfee %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x80] +#CHECK: vfee %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x80] +#CHECK: vfee %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x80] +#CHECK: vfee %v0, %v0, %v0, 0, 12 # encoding: [0xe7,0x00,0x00,0xc0,0x00,0x80] +#CHECK: vfee %v0, %v0, %v15, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x80] +#CHECK: vfee %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x80] +#CHECK: vfee %v0, %v15, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x80] +#CHECK: vfee %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x80] +#CHECK: vfee %v15, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x80] +#CHECK: vfee %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x80] +#CHECK: vfee %v18, %v3, %v20, 11, 4 # encoding: [0xe7,0x23,0x40,0x40,0xba,0x80] +#CHECK: vfee %v18, %v3, %v20, 0, 15 # encoding: [0xe7,0x23,0x40,0xf0,0x0a,0x80] + + vfee %v0, %v0, %v0, 0 + vfee %v0, %v0, %v0, 15 + vfee %v0, %v0, %v0, 0, 0 + vfee %v0, %v0, %v0, 15, 0 + vfee %v0, %v0, %v0, 0, 12 + vfee %v0, %v0, %v15, 0 + vfee %v0, %v0, %v31, 0 + vfee %v0, %v15, %v0, 0 + vfee %v0, %v31, %v0, 0 + vfee %v15, %v0, %v0, 0 + vfee %v31, %v0, %v0, 0 + vfee %v18, %v3, %v20, 11, 4 + vfee %v18, %v3, %v20, 0, 15 + #CHECK: vfeeb %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x80] #CHECK: vfeeb %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x80] #CHECK: vfeeb %v0, %v0, %v0, 12 # encoding: [0xe7,0x00,0x00,0xc0,0x00,0x80] @@ -1478,6 +2028,34 @@ vfeezh %v18, %v3, %v20 vfeezhs %v5, %v22, %v7 +#CHECK: vfene %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x81] +#CHECK: vfene %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x81] +#CHECK: vfene %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x81] +#CHECK: vfene %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x81] +#CHECK: vfene %v0, %v0, %v0, 0, 12 # encoding: [0xe7,0x00,0x00,0xc0,0x00,0x81] +#CHECK: vfene %v0, %v0, %v15, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x81] +#CHECK: vfene %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x81] +#CHECK: vfene %v0, %v15, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x81] +#CHECK: vfene %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x81] +#CHECK: vfene %v15, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x81] +#CHECK: vfene %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x81] +#CHECK: vfene %v18, %v3, %v20, 11, 4 # encoding: [0xe7,0x23,0x40,0x40,0xba,0x81] +#CHECK: vfene %v18, %v3, %v20, 0, 15 # encoding: [0xe7,0x23,0x40,0xf0,0x0a,0x81] + + vfene %v0, %v0, %v0, 0 + vfene %v0, %v0, %v0, 15 + vfene %v0, %v0, %v0, 0, 0 + vfene %v0, %v0, %v0, 15, 0 + vfene %v0, %v0, %v0, 0, 12 + vfene %v0, %v0, %v15, 0 + vfene %v0, %v0, %v31, 0 + vfene %v0, %v15, %v0, 0 + vfene %v0, %v31, %v0, 0 + vfene %v15, %v0, %v0, 0 + vfene %v31, %v0, %v0, 0 + vfene %v18, %v3, %v20, 11, 4 + vfene %v18, %v3, %v20, 0, 15 + #CHECK: vfeneb %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x81] #CHECK: vfeneb %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x81] #CHECK: vfeneb %v0, %v0, %v0, 12 # encoding: [0xe7,0x00,0x00,0xc0,0x00,0x81] @@ -1562,6 +2140,24 @@ vfenezh %v18, %v3, %v20 vfenezhs %v5, %v22, %v7 +#CHECK: vfi %v0, %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xc7] +#CHECK: vfi %v0, %v0, 15, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xc7] +#CHECK: vfi %v0, %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xc7] +#CHECK: vfi %v0, %v0, 0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x00,0xc7] +#CHECK: vfi %v0, %v0, 0, 12, 0 # encoding: [0xe7,0x00,0x00,0x0c,0x00,0xc7] +#CHECK: vfi %v0, %v31, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xc7] +#CHECK: vfi %v31, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xc7] +#CHECK: vfi %v14, %v17, 11, 4, 10 # encoding: [0xe7,0xe1,0x00,0xa4,0xb4,0xc7] + + vfi %v0, %v0, 0, 0, 0 + vfi %v0, %v0, 15, 0, 0 + vfi %v0, %v0, 0, 0, 15 + vfi %v0, %v0, 0, 4, 0 + vfi %v0, %v0, 0, 12, 0 + vfi %v0, %v31, 0, 0, 0 + vfi %v31, %v0, 0, 0, 0 + vfi %v14, %v17, 11, 4, 10 + #CHECK: vfidb %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xc7] #CHECK: vfidb %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x30,0xc7] #CHECK: vfidb %v0, %v0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x30,0xc7] @@ -1578,6 +2174,28 @@ vfidb %v31, %v0, 0, 0 vfidb %v14, %v17, 4, 10 +#CHECK: vistr %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x5c] +#CHECK: vistr %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x5c] +#CHECK: vistr %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x5c] +#CHECK: vistr %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x5c] +#CHECK: vistr %v0, %v0, 0, 12 # encoding: [0xe7,0x00,0x00,0xc0,0x00,0x5c] +#CHECK: vistr %v0, %v15, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x5c] +#CHECK: vistr %v0, %v31, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x5c] +#CHECK: vistr %v15, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x5c] +#CHECK: vistr %v31, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x5c] +#CHECK: vistr %v18, %v3, 11, 9 # encoding: [0xe7,0x23,0x00,0x90,0xb8,0x5c] + + vistr %v0, %v0, 0 + vistr %v0, %v0, 15 + vistr %v0, %v0, 0, 0 + vistr %v0, %v0, 15, 0 + vistr %v0, %v0, 0, 12 + vistr %v0, %v15, 0 + vistr %v0, %v31, 0 + vistr %v15, %v0, 0 + vistr %v31, %v0, 0 + vistr %v18, %v3, 11, 9 + #CHECK: vistrb %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x5c] #CHECK: vistrb %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x5c] #CHECK: vistrb %v0, %v0, 12 # encoding: [0xe7,0x00,0x00,0xc0,0x00,0x5c] @@ -1638,6 +2256,41 @@ vistrh %v18, %v3 vistrhs %v5, %v22 +#CHECK: vfpso %v0, %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xcc] +#CHECK: vfpso %v0, %v0, 15, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xcc] +#CHECK: vfpso %v0, %v0, 0, 15, 0 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xcc] +#CHECK: vfpso %v0, %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xcc] +#CHECK: vfpso %v0, %v15, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xcc] +#CHECK: vfpso %v0, %v31, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xcc] +#CHECK: vfpso %v15, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xcc] +#CHECK: vfpso %v31, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xcc] +#CHECK: vfpso %v14, %v17, 11, 9, 7 # encoding: [0xe7,0xe1,0x00,0x79,0xb4,0xcc] + + vfpso %v0, %v0, 0, 0, 0 + vfpso %v0, %v0, 15, 0, 0 + vfpso %v0, %v0, 0, 15, 0 + vfpso %v0, %v0, 0, 0, 15 + vfpso %v0, %v15, 0, 0, 0 + vfpso %v0, %v31, 0, 0, 0 + vfpso %v15, %v0, 0, 0, 0 + vfpso %v31, %v0, 0, 0, 0 + vfpso %v14, %v17, 11, 9, 7 + +#CHECK: vfpsodb %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x30,0xcc] +#CHECK: vfpsodb %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x30,0xcc] +#CHECK: vfpsodb %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x34,0xcc] +#CHECK: vfpsodb %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x30,0xcc] +#CHECK: vfpsodb %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x38,0xcc] +#CHECK: vfpsodb %v14, %v17, 7 # encoding: [0xe7,0xe1,0x00,0x70,0x34,0xcc] + + vfpsodb %v0, %v0, 0 + vfpsodb %v0, %v0, 15 + vfpsodb %v0, %v15, 0 + vfpsodb %v0, %v31, 0 + vfpsodb %v15, %v0, 0 + vfpsodb %v31, %v0, 0 + vfpsodb %v14, %v17, 7 + #CHECK: vflcdb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xcc] #CHECK: vflcdb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x30,0xcc] #CHECK: vflcdb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x34,0xcc] @@ -1680,6 +2333,24 @@ vflpdb %v31, %v0 vflpdb %v14, %v17 +#CHECK: vfma %v0, %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x8f] +#CHECK: vfma %v0, %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0x8f] +#CHECK: vfma %v0, %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0x8f] +#CHECK: vfma %v0, %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0x8f] +#CHECK: vfma %v0, %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x8f] +#CHECK: vfma %v0, %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x8f] +#CHECK: vfma %v31, %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x8f] +#CHECK: vfma %v13, %v17, %v21, %v25, 9, 11 # encoding: [0xe7,0xd1,0x5b,0x09,0x97,0x8f] + + vfma %v0, %v0, %v0, %v0, 0, 0 + vfma %v0, %v0, %v0, %v0, 0, 15 + vfma %v0, %v0, %v0, %v0, 15, 0 + vfma %v0, %v0, %v0, %v31, 0, 0 + vfma %v0, %v0, %v31, %v0, 0, 0 + vfma %v0, %v31, %v0, %v0, 0, 0 + vfma %v31, %v0, %v0, %v0, 0, 0 + vfma %v13, %v17, %v21, %v25, 9, 11 + #CHECK: vfmadb %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x03,0x00,0x00,0x8f] #CHECK: vfmadb %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x03,0x00,0xf1,0x8f] #CHECK: vfmadb %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf3,0x00,0x02,0x8f] @@ -1694,6 +2365,22 @@ vfmadb %v31, %v0, %v0, %v0 vfmadb %v13, %v17, %v21, %v25 +#CHECK: vfm %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xe7] +#CHECK: vfm %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xe7] +#CHECK: vfm %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xe7] +#CHECK: vfm %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xe7] +#CHECK: vfm %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xe7] +#CHECK: vfm %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xe7] +#CHECK: vfm %v18, %v3, %v20, 11, 9 # encoding: [0xe7,0x23,0x40,0x09,0xba,0xe7] + + vfm %v0, %v0, %v0, 0, 0 + vfm %v0, %v0, %v0, 15, 0 + vfm %v0, %v0, %v0, 0, 15 + vfm %v0, %v0, %v31, 0, 0 + vfm %v0, %v31, %v0, 0, 0 + vfm %v31, %v0, %v0, 0, 0 + vfm %v18, %v3, %v20, 11, 9 + #CHECK: vfmdb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xe7] #CHECK: vfmdb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x32,0xe7] #CHECK: vfmdb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x34,0xe7] @@ -1706,6 +2393,24 @@ vfmdb %v31, %v0, %v0 vfmdb %v18, %v3, %v20 +#CHECK: vfms %v0, %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x8e] +#CHECK: vfms %v0, %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0x8e] +#CHECK: vfms %v0, %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0x8e] +#CHECK: vfms %v0, %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0x8e] +#CHECK: vfms %v0, %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x8e] +#CHECK: vfms %v0, %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x8e] +#CHECK: vfms %v31, %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x8e] +#CHECK: vfms %v13, %v17, %v21, %v25, 9, 11 # encoding: [0xe7,0xd1,0x5b,0x09,0x97,0x8e] + + vfms %v0, %v0, %v0, %v0, 0, 0 + vfms %v0, %v0, %v0, %v0, 0, 15 + vfms %v0, %v0, %v0, %v0, 15, 0 + vfms %v0, %v0, %v0, %v31, 0, 0 + vfms %v0, %v0, %v31, %v0, 0, 0 + vfms %v0, %v31, %v0, %v0, 0, 0 + vfms %v31, %v0, %v0, %v0, 0, 0 + vfms %v13, %v17, %v21, %v25, 9, 11 + #CHECK: vfmsdb %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x03,0x00,0x00,0x8e] #CHECK: vfmsdb %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x03,0x00,0xf1,0x8e] #CHECK: vfmsdb %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf3,0x00,0x02,0x8e] @@ -1720,6 +2425,22 @@ vfmsdb %v31, %v0, %v0, %v0 vfmsdb %v13, %v17, %v21, %v25 +#CHECK: vfs %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xe2] +#CHECK: vfs %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xe2] +#CHECK: vfs %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xe2] +#CHECK: vfs %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xe2] +#CHECK: vfs %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xe2] +#CHECK: vfs %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xe2] +#CHECK: vfs %v18, %v3, %v20, 11, 9 # encoding: [0xe7,0x23,0x40,0x09,0xba,0xe2] + + vfs %v0, %v0, %v0, 0, 0 + vfs %v0, %v0, %v0, 15, 0 + vfs %v0, %v0, %v0, 0, 15 + vfs %v0, %v0, %v31, 0, 0 + vfs %v0, %v31, %v0, 0, 0 + vfs %v31, %v0, %v0, 0, 0 + vfs %v18, %v3, %v20, 11, 9 + #CHECK: vfsdb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xe2] #CHECK: vfsdb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x32,0xe2] #CHECK: vfsdb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x34,0xe2] @@ -1732,6 +2453,24 @@ vfsdb %v31, %v0, %v0 vfsdb %v18, %v3, %v20 +#CHECK: vfsq %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xce] +#CHECK: vfsq %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xce] +#CHECK: vfsq %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xce] +#CHECK: vfsq %v0, %v15, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xce] +#CHECK: vfsq %v0, %v31, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xce] +#CHECK: vfsq %v15, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xce] +#CHECK: vfsq %v31, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xce] +#CHECK: vfsq %v14, %v17, 11, 9 # encoding: [0xe7,0xe1,0x00,0x09,0xb4,0xce] + + vfsq %v0, %v0, 0, 0 + vfsq %v0, %v0, 15, 0 + vfsq %v0, %v0, 0, 15 + vfsq %v0, %v15, 0, 0 + vfsq %v0, %v31, 0, 0 + vfsq %v15, %v0, 0, 0 + vfsq %v31, %v0, 0, 0 + vfsq %v14, %v17, 11, 9 + #CHECK: vfsqdb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xce] #CHECK: vfsqdb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x30,0xce] #CHECK: vfsqdb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x34,0xce] @@ -1746,6 +2485,26 @@ vfsqdb %v31, %v0 vfsqdb %v14, %v17 +#CHECK: vftci %v0, %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x4a] +#CHECK: vftci %v0, %v0, 0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x4a] +#CHECK: vftci %v0, %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0x4a] +#CHECK: vftci %v0, %v0, 4095, 0, 0 # encoding: [0xe7,0x00,0xff,0xf0,0x00,0x4a] +#CHECK: vftci %v0, %v15, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x4a] +#CHECK: vftci %v0, %v31, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x4a] +#CHECK: vftci %v15, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x4a] +#CHECK: vftci %v31, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x4a] +#CHECK: vftci %v4, %v21, 1656, 11, 9 # encoding: [0xe7,0x45,0x67,0x89,0xb4,0x4a] + + vftci %v0, %v0, 0, 0, 0 + vftci %v0, %v0, 0, 15, 0 + vftci %v0, %v0, 0, 0, 15 + vftci %v0, %v0, 4095, 0, 0 + vftci %v0, %v15, 0, 0, 0 + vftci %v0, %v31, 0, 0, 0 + vftci %v15, %v0, 0, 0, 0 + vftci %v31, %v0, 0, 0, 0 + vftci %v4, %v21, 0x678, 11, 9 + #CHECK: vftcidb %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0x4a] #CHECK: vftcidb %v0, %v0, 4095 # encoding: [0xe7,0x00,0xff,0xf0,0x30,0x4a] #CHECK: vftcidb %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x30,0x4a] @@ -1818,6 +2577,22 @@ vgeg %v31, 0(%v0,%r1), 0 vgeg %v10, 1000(%v19,%r7), 1 +#CHECK: vgfma %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xbc] +#CHECK: vgfma %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xbc] +#CHECK: vgfma %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xbc] +#CHECK: vgfma %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xbc] +#CHECK: vgfma %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xbc] +#CHECK: vgfma %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xbc] +#CHECK: vgfma %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xbc] + + vgfma %v0, %v0, %v0, %v0, 0 + vgfma %v0, %v0, %v0, %v0, 15 + vgfma %v0, %v0, %v0, %v31, 0 + vgfma %v0, %v0, %v31, %v0, 0 + vgfma %v0, %v31, %v0, %v0, 0 + vgfma %v31, %v0, %v0, %v0, 0 + vgfma %v13, %v17, %v21, %v25, 11 + #CHECK: vgfmab %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xbc] #CHECK: vgfmab %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xbc] #CHECK: vgfmab %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xbc] @@ -1874,6 +2649,20 @@ vgfmah %v31, %v0, %v0, %v0 vgfmah %v13, %v17, %v21, %v25 +#CHECK: vgfm %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xb4] +#CHECK: vgfm %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xb4] +#CHECK: vgfm %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xb4] +#CHECK: vgfm %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xb4] +#CHECK: vgfm %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xb4] +#CHECK: vgfm %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xb4] + + vgfm %v0, %v0, %v0, 0 + vgfm %v0, %v0, %v0, 15 + vgfm %v0, %v0, %v31, 0 + vgfm %v0, %v31, %v0, 0 + vgfm %v31, %v0, %v0, 0 + vgfm %v18, %v3, %v20, 11 + #CHECK: vgfmb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xb4] #CHECK: vgfmb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xb4] #CHECK: vgfmb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xb4] @@ -1922,6 +2711,22 @@ vgfmh %v31, %v0, %v0 vgfmh %v18, %v3, %v20 +#CHECK: vgm %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x46] +#CHECK: vgm %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x46] +#CHECK: vgm %v0, 0, 255, 0 # encoding: [0xe7,0x00,0x00,0xff,0x00,0x46] +#CHECK: vgm %v0, 255, 0, 0 # encoding: [0xe7,0x00,0xff,0x00,0x00,0x46] +#CHECK: vgm %v15, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x46] +#CHECK: vgm %v31, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x46] +#CHECK: vgm %v21, 2, 3, 11 # encoding: [0xe7,0x50,0x02,0x03,0xb8,0x46] + + vgm %v0, 0, 0, 0 + vgm %v0, 0, 0, 15 + vgm %v0, 0, 255, 0 + vgm %v0, 255, 0, 0 + vgm %v15, 0, 0, 0 + vgm %v31, 0, 0, 0 + vgm %v21, 2, 3, 11 + #CHECK: vgmb %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x46] #CHECK: vgmb %v0, 0, 255 # encoding: [0xe7,0x00,0x00,0xff,0x00,0x46] #CHECK: vgmb %v0, 255, 0 # encoding: [0xe7,0x00,0xff,0x00,0x00,0x46] @@ -2012,6 +2817,22 @@ vlbb %v31, 0, 0 vlbb %v18, 1383(%r3,%r4), 8 +#CHECK: vlc %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xde] +#CHECK: vlc %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xde] +#CHECK: vlc %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xde] +#CHECK: vlc %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xde] +#CHECK: vlc %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xde] +#CHECK: vlc %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xde] +#CHECK: vlc %v14, %v17, 11 # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0xde] + + vlc %v0, %v0, 0 + vlc %v0, %v0, 15 + vlc %v0, %v15, 0 + vlc %v0, %v31, 0 + vlc %v15, %v0, 0 + vlc %v31, %v0, 0 + vlc %v14, %v17, 11 + #CHECK: vlcb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xde] #CHECK: vlcb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xde] #CHECK: vlcb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xde] @@ -2068,6 +2889,24 @@ vlch %v31, %v0 vlch %v14, %v17 +#CHECK: vlde %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xc4] +#CHECK: vlde %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xc4] +#CHECK: vlde %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xc4] +#CHECK: vlde %v0, %v15, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xc4] +#CHECK: vlde %v0, %v31, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xc4] +#CHECK: vlde %v15, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xc4] +#CHECK: vlde %v31, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xc4] +#CHECK: vlde %v14, %v17, 11, 9 # encoding: [0xe7,0xe1,0x00,0x09,0xb4,0xc4] + + vlde %v0, %v0, 0, 0 + vlde %v0, %v0, 15, 0 + vlde %v0, %v0, 0, 15 + vlde %v0, %v15, 0, 0 + vlde %v0, %v31, 0, 0 + vlde %v15, %v0, 0, 0 + vlde %v31, %v0, 0, 0 + vlde %v14, %v17, 11, 9 + #CHECK: vldeb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x20,0xc4] #CHECK: vldeb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x20,0xc4] #CHECK: vldeb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x24,0xc4] @@ -2100,6 +2939,24 @@ vleb %v31, 0, 0 vleb %v18, 1383(%r3,%r4), 8 +#CHECK: vled %v0, %v0, 0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xc5] +#CHECK: vled %v0, %v0, 15, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xc5] +#CHECK: vled %v0, %v0, 0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0xc5] +#CHECK: vled %v0, %v0, 0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x00,0xc5] +#CHECK: vled %v0, %v0, 0, 12, 0 # encoding: [0xe7,0x00,0x00,0x0c,0x00,0xc5] +#CHECK: vled %v0, %v31, 0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xc5] +#CHECK: vled %v31, %v0, 0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xc5] +#CHECK: vled %v14, %v17, 11, 4, 10 # encoding: [0xe7,0xe1,0x00,0xa4,0xb4,0xc5] + + vled %v0, %v0, 0, 0, 0 + vled %v0, %v0, 15, 0, 0 + vled %v0, %v0, 0, 0, 15 + vled %v0, %v0, 0, 4, 0 + vled %v0, %v0, 0, 12, 0 + vled %v0, %v31, 0, 0, 0 + vled %v31, %v0, 0, 0, 0 + vled %v14, %v17, 11, 4, 10 + #CHECK: vledb %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xc5] #CHECK: vledb %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x30,0xc5] #CHECK: vledb %v0, %v0, 4, 0 # encoding: [0xe7,0x00,0x00,0x04,0x30,0xc5] @@ -2234,6 +3091,24 @@ vleih %v31, 0, 0 vleih %v18, 0x3456, 7 +#CHECK: vlgv %r0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x21] +#CHECK: vlgv %r0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x21] +#CHECK: vlgv %r0, %v0, 4095, 0 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x21] +#CHECK: vlgv %r0, %v0, 0(%r15), 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x21] +#CHECK: vlgv %r0, %v15, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x21] +#CHECK: vlgv %r0, %v31, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x21] +#CHECK: vlgv %r15, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x21] +#CHECK: vlgv %r2, %v19, 1383(%r4), 11 # encoding: [0xe7,0x23,0x45,0x67,0xb4,0x21] + + vlgv %r0, %v0, 0, 0 + vlgv %r0, %v0, 0, 15 + vlgv %r0, %v0, 4095, 0 + vlgv %r0, %v0, 0(%r15), 0 + vlgv %r0, %v15, 0, 0 + vlgv %r0, %v31, 0, 0 + vlgv %r15, %v0, 0, 0 + vlgv %r2, %v19, 1383(%r4), 11 + #CHECK: vlgvb %r0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x21] #CHECK: vlgvb %r0, %v0, 4095 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x21] #CHECK: vlgvb %r0, %v0, 0(%r15) # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x21] @@ -2314,6 +3189,24 @@ vll %v31, %r0, 0 vll %v18, %r3, 1383(%r4) +#CHECK: vllez %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x04] +#CHECK: vllez %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x04] +#CHECK: vllez %v0, 4095, 0 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x04] +#CHECK: vllez %v0, 0(%r15), 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x04] +#CHECK: vllez %v0, 0(%r15,%r1), 0 # encoding: [0xe7,0x0f,0x10,0x00,0x00,0x04] +#CHECK: vllez %v15, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x04] +#CHECK: vllez %v31, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x04] +#CHECK: vllez %v18, 1383(%r3,%r4), 11 # encoding: [0xe7,0x23,0x45,0x67,0xb8,0x04] + + vllez %v0, 0, 0 + vllez %v0, 0, 15 + vllez %v0, 4095, 0 + vllez %v0, 0(%r15), 0 + vllez %v0, 0(%r15,%r1), 0 + vllez %v15, 0, 0 + vllez %v31, 0, 0 + vllez %v18, 0x567(%r3,%r4), 11 + #CHECK: vllezb %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x04] #CHECK: vllezb %v0, 4095 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x04] #CHECK: vllezb %v0, 0(%r15) # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x04] @@ -2392,6 +3285,22 @@ vlm %v31, %v0, 0 vlm %v14, %v17, 1074(%r5) +#CHECK: vlp %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xdf] +#CHECK: vlp %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xdf] +#CHECK: vlp %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xdf] +#CHECK: vlp %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xdf] +#CHECK: vlp %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xdf] +#CHECK: vlp %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xdf] +#CHECK: vlp %v14, %v17, 11 # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0xdf] + + vlp %v0, %v0, 0 + vlp %v0, %v0, 15 + vlp %v0, %v15, 0 + vlp %v0, %v31, 0 + vlp %v15, %v0, 0 + vlp %v31, %v0, 0 + vlp %v14, %v17, 11 + #CHECK: vlpb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xdf] #CHECK: vlpb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xdf] #CHECK: vlpb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xdf] @@ -2462,6 +3371,24 @@ vlr %v31, %v0 vlr %v14, %v17 +#CHECK: vlrep %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x05] +#CHECK: vlrep %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x05] +#CHECK: vlrep %v0, 4095, 0 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x05] +#CHECK: vlrep %v0, 0(%r15), 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x05] +#CHECK: vlrep %v0, 0(%r15,%r1), 0 # encoding: [0xe7,0x0f,0x10,0x00,0x00,0x05] +#CHECK: vlrep %v15, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x05] +#CHECK: vlrep %v31, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x05] +#CHECK: vlrep %v18, 1383(%r3,%r4), 11 # encoding: [0xe7,0x23,0x45,0x67,0xb8,0x05] + + vlrep %v0, 0, 0 + vlrep %v0, 0, 15 + vlrep %v0, 4095, 0 + vlrep %v0, 0(%r15), 0 + vlrep %v0, 0(%r15,%r1), 0 + vlrep %v15, 0, 0 + vlrep %v31, 0, 0 + vlrep %v18, 0x567(%r3,%r4), 11 + #CHECK: vlrepb %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x05] #CHECK: vlrepb %v0, 4095 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x05] #CHECK: vlrepb %v0, 0(%r15) # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x05] @@ -2526,6 +3453,24 @@ vlreph %v31, 0 vlreph %v18, 0x567(%r3,%r4) +#CHECK: vlvg %v0, %r0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x22] +#CHECK: vlvg %v0, %r0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x22] +#CHECK: vlvg %v0, %r0, 4095, 0 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x22] +#CHECK: vlvg %v0, %r0, 0(%r15), 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x22] +#CHECK: vlvg %v0, %r15, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x22] +#CHECK: vlvg %v15, %r0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x22] +#CHECK: vlvg %v31, %r0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x22] +#CHECK: vlvg %v18, %r3, 1383(%r4), 11 # encoding: [0xe7,0x23,0x45,0x67,0xb8,0x22] + + vlvg %v0, %r0, 0, 0 + vlvg %v0, %r0, 0, 15 + vlvg %v0, %r0, 4095, 0 + vlvg %v0, %r0, 0(%r15), 0 + vlvg %v0, %r15, 0, 0 + vlvg %v15, %r0, 0, 0 + vlvg %v31, %r0, 0, 0 + vlvg %v18, %r3, 1383(%r4), 11 + #CHECK: vlvgb %v0, %r0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x22] #CHECK: vlvgb %v0, %r0, 4095 # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x22] #CHECK: vlvgb %v0, %r0, 0(%r15) # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x22] @@ -2604,6 +3549,22 @@ vlvgp %v31, %r0, %r0 vlvgp %v18, %r3, %r4 +#CHECK: vmae %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xae] +#CHECK: vmae %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xae] +#CHECK: vmae %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xae] +#CHECK: vmae %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xae] +#CHECK: vmae %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xae] +#CHECK: vmae %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xae] +#CHECK: vmae %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xae] + + vmae %v0, %v0, %v0, %v0, 0 + vmae %v0, %v0, %v0, %v0, 15 + vmae %v0, %v0, %v0, %v31, 0 + vmae %v0, %v0, %v31, %v0, 0 + vmae %v0, %v31, %v0, %v0, 0 + vmae %v31, %v0, %v0, %v0, 0 + vmae %v13, %v17, %v21, %v25, 11 + #CHECK: vmaeb %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xae] #CHECK: vmaeb %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xae] #CHECK: vmaeb %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xae] @@ -2646,6 +3607,22 @@ vmaeh %v31, %v0, %v0, %v0 vmaeh %v13, %v17, %v21, %v25 +#CHECK: vmah %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xab] +#CHECK: vmah %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xab] +#CHECK: vmah %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xab] +#CHECK: vmah %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xab] +#CHECK: vmah %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xab] +#CHECK: vmah %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xab] +#CHECK: vmah %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xab] + + vmah %v0, %v0, %v0, %v0, 0 + vmah %v0, %v0, %v0, %v0, 15 + vmah %v0, %v0, %v0, %v31, 0 + vmah %v0, %v0, %v31, %v0, 0 + vmah %v0, %v31, %v0, %v0, 0 + vmah %v31, %v0, %v0, %v0, 0 + vmah %v13, %v17, %v21, %v25, 11 + #CHECK: vmahb %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xab] #CHECK: vmahb %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xab] #CHECK: vmahb %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xab] @@ -2688,6 +3665,22 @@ vmahh %v31, %v0, %v0, %v0 vmahh %v13, %v17, %v21, %v25 +#CHECK: vmal %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xaa] +#CHECK: vmal %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xaa] +#CHECK: vmal %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xaa] +#CHECK: vmal %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xaa] +#CHECK: vmal %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xaa] +#CHECK: vmal %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xaa] +#CHECK: vmal %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xaa] + + vmal %v0, %v0, %v0, %v0, 0 + vmal %v0, %v0, %v0, %v0, 15 + vmal %v0, %v0, %v0, %v31, 0 + vmal %v0, %v0, %v31, %v0, 0 + vmal %v0, %v31, %v0, %v0, 0 + vmal %v31, %v0, %v0, %v0, 0 + vmal %v13, %v17, %v21, %v25, 11 + #CHECK: vmalb %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xaa] #CHECK: vmalb %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xaa] #CHECK: vmalb %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xaa] @@ -2702,6 +3695,22 @@ vmalb %v31, %v0, %v0, %v0 vmalb %v13, %v17, %v21, %v25 +#CHECK: vmale %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xac] +#CHECK: vmale %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xac] +#CHECK: vmale %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xac] +#CHECK: vmale %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xac] +#CHECK: vmale %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xac] +#CHECK: vmale %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xac] +#CHECK: vmale %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xac] + + vmale %v0, %v0, %v0, %v0, 0 + vmale %v0, %v0, %v0, %v0, 15 + vmale %v0, %v0, %v0, %v31, 0 + vmale %v0, %v0, %v31, %v0, 0 + vmale %v0, %v31, %v0, %v0, 0 + vmale %v31, %v0, %v0, %v0, 0 + vmale %v13, %v17, %v21, %v25, 11 + #CHECK: vmaleb %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xac] #CHECK: vmaleb %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xac] #CHECK: vmaleb %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xac] @@ -2758,6 +3767,22 @@ vmalf %v31, %v0, %v0, %v0 vmalf %v13, %v17, %v21, %v25 +#CHECK: vmalh %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa9] +#CHECK: vmalh %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xa9] +#CHECK: vmalh %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xa9] +#CHECK: vmalh %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa9] +#CHECK: vmalh %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa9] +#CHECK: vmalh %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xa9] +#CHECK: vmalh %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xa9] + + vmalh %v0, %v0, %v0, %v0, 0 + vmalh %v0, %v0, %v0, %v0, 15 + vmalh %v0, %v0, %v0, %v31, 0 + vmalh %v0, %v0, %v31, %v0, 0 + vmalh %v0, %v31, %v0, %v0, 0 + vmalh %v31, %v0, %v0, %v0, 0 + vmalh %v13, %v17, %v21, %v25, 11 + #CHECK: vmalhb %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa9] #CHECK: vmalhb %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xa9] #CHECK: vmalhb %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa9] @@ -2814,6 +3839,22 @@ vmalhw %v31, %v0, %v0, %v0 vmalhw %v13, %v17, %v21, %v25 +#CHECK: vmalo %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xad] +#CHECK: vmalo %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xad] +#CHECK: vmalo %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xad] +#CHECK: vmalo %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xad] +#CHECK: vmalo %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xad] +#CHECK: vmalo %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xad] +#CHECK: vmalo %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xad] + + vmalo %v0, %v0, %v0, %v0, 0 + vmalo %v0, %v0, %v0, %v0, 15 + vmalo %v0, %v0, %v0, %v31, 0 + vmalo %v0, %v0, %v31, %v0, 0 + vmalo %v0, %v31, %v0, %v0, 0 + vmalo %v31, %v0, %v0, %v0, 0 + vmalo %v13, %v17, %v21, %v25, 11 + #CHECK: vmalob %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xad] #CHECK: vmalob %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xad] #CHECK: vmalob %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xad] @@ -2856,6 +3897,22 @@ vmaloh %v31, %v0, %v0, %v0 vmaloh %v13, %v17, %v21, %v25 +#CHECK: vmao %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xaf] +#CHECK: vmao %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xaf] +#CHECK: vmao %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xaf] +#CHECK: vmao %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xaf] +#CHECK: vmao %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xaf] +#CHECK: vmao %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xaf] +#CHECK: vmao %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xaf] + + vmao %v0, %v0, %v0, %v0, 0 + vmao %v0, %v0, %v0, %v0, 15 + vmao %v0, %v0, %v0, %v31, 0 + vmao %v0, %v0, %v31, %v0, 0 + vmao %v0, %v31, %v0, %v0, 0 + vmao %v31, %v0, %v0, %v0, 0 + vmao %v13, %v17, %v21, %v25, 11 + #CHECK: vmaob %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xaf] #CHECK: vmaob %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xaf] #CHECK: vmaob %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xaf] @@ -2898,6 +3955,20 @@ vmaoh %v31, %v0, %v0, %v0 vmaoh %v13, %v17, %v21, %v25 +#CHECK: vme %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa6] +#CHECK: vme %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xa6] +#CHECK: vme %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa6] +#CHECK: vme %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa6] +#CHECK: vme %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xa6] +#CHECK: vme %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xa6] + + vme %v0, %v0, %v0, 0 + vme %v0, %v0, %v0, 15 + vme %v0, %v0, %v31, 0 + vme %v0, %v31, %v0, 0 + vme %v31, %v0, %v0, 0 + vme %v18, %v3, %v20, 11 + #CHECK: vmeb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa6] #CHECK: vmeb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa6] #CHECK: vmeb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa6] @@ -2934,6 +4005,20 @@ vmeh %v31, %v0, %v0 vmeh %v18, %v3, %v20 +#CHECK: vmh %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa3] +#CHECK: vmh %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xa3] +#CHECK: vmh %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa3] +#CHECK: vmh %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa3] +#CHECK: vmh %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xa3] +#CHECK: vmh %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xa3] + + vmh %v0, %v0, %v0, 0 + vmh %v0, %v0, %v0, 15 + vmh %v0, %v0, %v31, 0 + vmh %v0, %v31, %v0, 0 + vmh %v31, %v0, %v0, 0 + vmh %v18, %v3, %v20, 11 + #CHECK: vmhb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa3] #CHECK: vmhb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa3] #CHECK: vmhb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa3] @@ -2970,6 +4055,20 @@ vmhh %v31, %v0, %v0 vmhh %v18, %v3, %v20 +#CHECK: vml %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa2] +#CHECK: vml %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xa2] +#CHECK: vml %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa2] +#CHECK: vml %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa2] +#CHECK: vml %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xa2] +#CHECK: vml %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xa2] + + vml %v0, %v0, %v0, 0 + vml %v0, %v0, %v0, 15 + vml %v0, %v0, %v31, 0 + vml %v0, %v31, %v0, 0 + vml %v31, %v0, %v0, 0 + vml %v18, %v3, %v20, 11 + #CHECK: vmlb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa2] #CHECK: vmlb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa2] #CHECK: vmlb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa2] @@ -2982,6 +4081,20 @@ vmlb %v31, %v0, %v0 vmlb %v18, %v3, %v20 +#CHECK: vmle %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa4] +#CHECK: vmle %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xa4] +#CHECK: vmle %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa4] +#CHECK: vmle %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa4] +#CHECK: vmle %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xa4] +#CHECK: vmle %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xa4] + + vmle %v0, %v0, %v0, 0 + vmle %v0, %v0, %v0, 15 + vmle %v0, %v0, %v31, 0 + vmle %v0, %v31, %v0, 0 + vmle %v31, %v0, %v0, 0 + vmle %v18, %v3, %v20, 11 + #CHECK: vmleb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa4] #CHECK: vmleb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa4] #CHECK: vmleb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa4] @@ -3030,6 +4143,20 @@ vmlf %v31, %v0, %v0 vmlf %v18, %v3, %v20 +#CHECK: vmlh %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa1] +#CHECK: vmlh %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xa1] +#CHECK: vmlh %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa1] +#CHECK: vmlh %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa1] +#CHECK: vmlh %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xa1] +#CHECK: vmlh %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xa1] + + vmlh %v0, %v0, %v0, 0 + vmlh %v0, %v0, %v0, 15 + vmlh %v0, %v0, %v31, 0 + vmlh %v0, %v31, %v0, 0 + vmlh %v31, %v0, %v0, 0 + vmlh %v18, %v3, %v20, 11 + #CHECK: vmlhb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa1] #CHECK: vmlhb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa1] #CHECK: vmlhb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa1] @@ -3078,6 +4205,20 @@ vmlhw %v31, %v0, %v0 vmlhw %v18, %v3, %v20 +#CHECK: vmlo %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa5] +#CHECK: vmlo %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xa5] +#CHECK: vmlo %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa5] +#CHECK: vmlo %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa5] +#CHECK: vmlo %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xa5] +#CHECK: vmlo %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xa5] + + vmlo %v0, %v0, %v0, 0 + vmlo %v0, %v0, %v0, 15 + vmlo %v0, %v0, %v31, 0 + vmlo %v0, %v31, %v0, 0 + vmlo %v31, %v0, %v0, 0 + vmlo %v18, %v3, %v20, 11 + #CHECK: vmlob %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa5] #CHECK: vmlob %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa5] #CHECK: vmlob %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa5] @@ -3114,6 +4255,20 @@ vmloh %v31, %v0, %v0 vmloh %v18, %v3, %v20 +#CHECK: vmn %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xfe] +#CHECK: vmn %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xfe] +#CHECK: vmn %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xfe] +#CHECK: vmn %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xfe] +#CHECK: vmn %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xfe] +#CHECK: vmn %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xfe] + + vmn %v0, %v0, %v0, 0 + vmn %v0, %v0, %v0, 15 + vmn %v0, %v0, %v31, 0 + vmn %v0, %v31, %v0, 0 + vmn %v31, %v0, %v0, 0 + vmn %v18, %v3, %v20, 11 + #CHECK: vmnb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xfe] #CHECK: vmnb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xfe] #CHECK: vmnb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xfe] @@ -3162,6 +4317,20 @@ vmnh %v31, %v0, %v0 vmnh %v18, %v3, %v20 +#CHECK: vmnl %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xfc] +#CHECK: vmnl %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xfc] +#CHECK: vmnl %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xfc] +#CHECK: vmnl %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xfc] +#CHECK: vmnl %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xfc] +#CHECK: vmnl %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xfc] + + vmnl %v0, %v0, %v0, 0 + vmnl %v0, %v0, %v0, 15 + vmnl %v0, %v0, %v31, 0 + vmnl %v0, %v31, %v0, 0 + vmnl %v31, %v0, %v0, 0 + vmnl %v18, %v3, %v20, 11 + #CHECK: vmnlb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xfc] #CHECK: vmnlb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xfc] #CHECK: vmnlb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xfc] @@ -3210,6 +4379,20 @@ vmnlh %v31, %v0, %v0 vmnlh %v18, %v3, %v20 +#CHECK: vmo %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa7] +#CHECK: vmo %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xa7] +#CHECK: vmo %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa7] +#CHECK: vmo %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa7] +#CHECK: vmo %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xa7] +#CHECK: vmo %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xa7] + + vmo %v0, %v0, %v0, 0 + vmo %v0, %v0, %v0, 15 + vmo %v0, %v0, %v31, 0 + vmo %v0, %v31, %v0, 0 + vmo %v31, %v0, %v0, 0 + vmo %v18, %v3, %v20, 11 + #CHECK: vmob %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xa7] #CHECK: vmob %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xa7] #CHECK: vmob %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xa7] @@ -3246,6 +4429,26 @@ vmoh %v31, %v0, %v0 vmoh %v18, %v3, %v20 +#CHECK: vmrh %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x61] +#CHECK: vmrh %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x61] +#CHECK: vmrh %v0, %v0, %v15, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x61] +#CHECK: vmrh %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x61] +#CHECK: vmrh %v0, %v15, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x61] +#CHECK: vmrh %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x61] +#CHECK: vmrh %v15, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x61] +#CHECK: vmrh %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x61] +#CHECK: vmrh %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0x61] + + vmrh %v0, %v0, %v0, 0 + vmrh %v0, %v0, %v0, 15 + vmrh %v0, %v0, %v15, 0 + vmrh %v0, %v0, %v31, 0 + vmrh %v0, %v15, %v0, 0 + vmrh %v0, %v31, %v0, 0 + vmrh %v15, %v0, %v0, 0 + vmrh %v31, %v0, %v0, 0 + vmrh %v18, %v3, %v20, 11 + #CHECK: vmrhb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x61] #CHECK: vmrhb %v0, %v0, %v15 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x61] #CHECK: vmrhb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x61] @@ -3318,6 +4521,26 @@ vmrhh %v31, %v0, %v0 vmrhh %v18, %v3, %v20 +#CHECK: vmrl %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x60] +#CHECK: vmrl %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x60] +#CHECK: vmrl %v0, %v0, %v15, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x60] +#CHECK: vmrl %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x60] +#CHECK: vmrl %v0, %v15, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x60] +#CHECK: vmrl %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x60] +#CHECK: vmrl %v15, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x60] +#CHECK: vmrl %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x60] +#CHECK: vmrl %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0x60] + + vmrl %v0, %v0, %v0, 0 + vmrl %v0, %v0, %v0, 15 + vmrl %v0, %v0, %v15, 0 + vmrl %v0, %v0, %v31, 0 + vmrl %v0, %v15, %v0, 0 + vmrl %v0, %v31, %v0, 0 + vmrl %v15, %v0, %v0, 0 + vmrl %v31, %v0, %v0, 0 + vmrl %v18, %v3, %v20, 11 + #CHECK: vmrlb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x60] #CHECK: vmrlb %v0, %v0, %v15 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x60] #CHECK: vmrlb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x60] @@ -3390,6 +4613,20 @@ vmrlh %v31, %v0, %v0 vmrlh %v18, %v3, %v20 +#CHECK: vmx %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xff] +#CHECK: vmx %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xff] +#CHECK: vmx %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xff] +#CHECK: vmx %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xff] +#CHECK: vmx %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xff] +#CHECK: vmx %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xff] + + vmx %v0, %v0, %v0, 0 + vmx %v0, %v0, %v0, 15 + vmx %v0, %v0, %v31, 0 + vmx %v0, %v31, %v0, 0 + vmx %v31, %v0, %v0, 0 + vmx %v18, %v3, %v20, 11 + #CHECK: vmxb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xff] #CHECK: vmxb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xff] #CHECK: vmxb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xff] @@ -3438,6 +4675,20 @@ vmxh %v31, %v0, %v0 vmxh %v18, %v3, %v20 +#CHECK: vmxl %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xfd] +#CHECK: vmxl %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xfd] +#CHECK: vmxl %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xfd] +#CHECK: vmxl %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xfd] +#CHECK: vmxl %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xfd] +#CHECK: vmxl %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xfd] + + vmxl %v0, %v0, %v0, 0 + vmxl %v0, %v0, %v0, 15 + vmxl %v0, %v0, %v31, 0 + vmxl %v0, %v31, %v0, 0 + vmxl %v31, %v0, %v0, 0 + vmxl %v18, %v3, %v20, 11 + #CHECK: vmxlb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xfd] #CHECK: vmxlb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xfd] #CHECK: vmxlb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xfd] @@ -3522,6 +4773,16 @@ vno %v31, %v0, %v0 vno %v18, %v3, %v20 +#CHECK: vno %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x6b] +#CHECK: vno %v0, %v31, %v31 # encoding: [0xe7,0x0f,0xf0,0x00,0x06,0x6b] +#CHECK: vno %v31, %v0, %v0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x6b] +#CHECK: vno %v3, %v20, %v20 # encoding: [0xe7,0x34,0x40,0x00,0x06,0x6b] + + vnot %v0, %v0 + vnot %v0, %v31 + vnot %v31, %v0 + vnot %v3, %v20 + #CHECK: vo %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x6a] #CHECK: vo %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x6a] #CHECK: vo %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x6a] @@ -3572,6 +4833,26 @@ vperm %v31, %v0, %v0, %v0 vperm %v13, %v17, %v21, %v25 +#CHECK: vpk %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x94] +#CHECK: vpk %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x94] +#CHECK: vpk %v0, %v0, %v15, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x94] +#CHECK: vpk %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x94] +#CHECK: vpk %v0, %v15, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x94] +#CHECK: vpk %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x94] +#CHECK: vpk %v15, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x94] +#CHECK: vpk %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x94] +#CHECK: vpk %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0x94] + + vpk %v0, %v0, %v0, 0 + vpk %v0, %v0, %v0, 15 + vpk %v0, %v0, %v15, 0 + vpk %v0, %v0, %v31, 0 + vpk %v0, %v15, %v0, 0 + vpk %v0, %v31, %v0, 0 + vpk %v15, %v0, %v0, 0 + vpk %v31, %v0, %v0, 0 + vpk %v18, %v3, %v20, 11 + #CHECK: vpkf %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x20,0x94] #CHECK: vpkf %v0, %v0, %v15 # encoding: [0xe7,0x00,0xf0,0x00,0x20,0x94] #CHECK: vpkf %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x22,0x94] @@ -3626,6 +4907,28 @@ vpkh %v31, %v0, %v0 vpkh %v18, %v3, %v20 +#CHECK: vpkls %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x95] +#CHECK: vpkls %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x95] +#CHECK: vpkls %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0x95] +#CHECK: vpkls %v0, %v0, %v15, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x95] +#CHECK: vpkls %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x95] +#CHECK: vpkls %v0, %v15, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x95] +#CHECK: vpkls %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x95] +#CHECK: vpkls %v15, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x95] +#CHECK: vpkls %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x95] +#CHECK: vpkls %v18, %v3, %v20, 11, 9 # encoding: [0xe7,0x23,0x40,0x90,0xba,0x95] + + vpkls %v0, %v0, %v0, 0, 0 + vpkls %v0, %v0, %v0, 15, 0 + vpkls %v0, %v0, %v0, 0, 15 + vpkls %v0, %v0, %v15, 0, 0 + vpkls %v0, %v0, %v31, 0, 0 + vpkls %v0, %v15, %v0, 0, 0 + vpkls %v0, %v31, %v0, 0, 0 + vpkls %v15, %v0, %v0, 0, 0 + vpkls %v31, %v0, %v0, 0, 0 + vpkls %v18, %v3, %v20, 11, 9 + #CHECK: vpklsf %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x20,0x95] #CHECK: vpklsf %v0, %v0, %v15 # encoding: [0xe7,0x00,0xf0,0x00,0x20,0x95] #CHECK: vpklsf %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x22,0x95] @@ -3686,6 +4989,28 @@ vpklsh %v18, %v3, %v20 vpklshs %v5, %v22, %v7 +#CHECK: vpks %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x97] +#CHECK: vpks %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x97] +#CHECK: vpks %v0, %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0xf0,0x00,0x97] +#CHECK: vpks %v0, %v0, %v15, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x97] +#CHECK: vpks %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x97] +#CHECK: vpks %v0, %v15, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x97] +#CHECK: vpks %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x97] +#CHECK: vpks %v15, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x97] +#CHECK: vpks %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x97] +#CHECK: vpks %v18, %v3, %v20, 11, 9 # encoding: [0xe7,0x23,0x40,0x90,0xba,0x97] + + vpks %v0, %v0, %v0, 0, 0 + vpks %v0, %v0, %v0, 15, 0 + vpks %v0, %v0, %v0, 0, 15 + vpks %v0, %v0, %v15, 0, 0 + vpks %v0, %v0, %v31, 0, 0 + vpks %v0, %v15, %v0, 0, 0 + vpks %v0, %v31, %v0, 0, 0 + vpks %v15, %v0, %v0, 0, 0 + vpks %v31, %v0, %v0, 0, 0 + vpks %v18, %v3, %v20, 11, 9 + #CHECK: vpksf %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x20,0x97] #CHECK: vpksf %v0, %v0, %v15 # encoding: [0xe7,0x00,0xf0,0x00,0x20,0x97] #CHECK: vpksf %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x22,0x97] @@ -3760,6 +5085,24 @@ vpopct %v31, %v0, 0 vpopct %v14, %v17, 0 +#CHECK: vrep %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x4d] +#CHECK: vrep %v0, %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x4d] +#CHECK: vrep %v0, %v0, 65535, 0 # encoding: [0xe7,0x00,0xff,0xff,0x00,0x4d] +#CHECK: vrep %v0, %v15, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x4d] +#CHECK: vrep %v0, %v31, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x4d] +#CHECK: vrep %v15, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x4d] +#CHECK: vrep %v31, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x4d] +#CHECK: vrep %v4, %v21, 26505, 11 # encoding: [0xe7,0x45,0x67,0x89,0xb4,0x4d] + + vrep %v0, %v0, 0, 0 + vrep %v0, %v0, 0, 15 + vrep %v0, %v0, 65535, 0 + vrep %v0, %v15, 0, 0 + vrep %v0, %v31, 0, 0 + vrep %v15, %v0, 0, 0 + vrep %v31, %v0, 0, 0 + vrep %v4, %v21, 0x6789, 11 + #CHECK: vrepb %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x4d] #CHECK: vrepb %v0, %v0, 65535 # encoding: [0xe7,0x00,0xff,0xff,0x00,0x4d] #CHECK: vrepb %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x4d] @@ -3824,6 +5167,22 @@ vreph %v31, %v0, 0 vreph %v4, %v21, 0x6789 +#CHECK: vrepi %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x45] +#CHECK: vrepi %v0, 0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x45] +#CHECK: vrepi %v0, -32768, 0 # encoding: [0xe7,0x00,0x80,0x00,0x00,0x45] +#CHECK: vrepi %v0, 32767, 0 # encoding: [0xe7,0x00,0x7f,0xff,0x00,0x45] +#CHECK: vrepi %v15, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x45] +#CHECK: vrepi %v31, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x45] +#CHECK: vrepi %v18, 13398, 11 # encoding: [0xe7,0x20,0x34,0x56,0xb8,0x45] + + vrepi %v0, 0, 0 + vrepi %v0, 0, 15 + vrepi %v0, -32768, 0 + vrepi %v0, 32767, 0 + vrepi %v15, 0, 0 + vrepi %v31, 0, 0 + vrepi %v18, 0x3456, 11 + #CHECK: vrepib %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x45] #CHECK: vrepib %v0, -32768 # encoding: [0xe7,0x00,0x80,0x00,0x00,0x45] #CHECK: vrepib %v0, 32767 # encoding: [0xe7,0x00,0x7f,0xff,0x00,0x45] @@ -3880,6 +5239,20 @@ vrepih %v31, 0 vrepih %v18, 0x3456 +#CHECK: vs %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf7] +#CHECK: vs %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xf7] +#CHECK: vs %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf7] +#CHECK: vs %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf7] +#CHECK: vs %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xf7] +#CHECK: vs %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xf7] + + vs %v0, %v0, %v0, 0 + vs %v0, %v0, %v0, 15 + vs %v0, %v0, %v31, 0 + vs %v0, %v31, %v0, 0 + vs %v31, %v0, %v0, 0 + vs %v18, %v3, %v20, 11 + #CHECK: vsb %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf7] #CHECK: vsb %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf7] #CHECK: vsb %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf7] @@ -3892,6 +5265,22 @@ vsb %v31, %v0, %v0 vsb %v18, %v3, %v20 +#CHECK: vsbcbi %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xbd] +#CHECK: vsbcbi %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xbd] +#CHECK: vsbcbi %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xbd] +#CHECK: vsbcbi %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xbd] +#CHECK: vsbcbi %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xbd] +#CHECK: vsbcbi %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xbd] +#CHECK: vsbcbi %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xbd] + + vsbcbi %v0, %v0, %v0, %v0, 0 + vsbcbi %v0, %v0, %v0, %v0, 15 + vsbcbi %v0, %v0, %v0, %v31, 0 + vsbcbi %v0, %v0, %v31, %v0, 0 + vsbcbi %v0, %v31, %v0, %v0, 0 + vsbcbi %v31, %v0, %v0, %v0, 0 + vsbcbi %v13, %v17, %v21, %v25, 11 + #CHECK: vsbcbiq %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x04,0x00,0x00,0xbd] #CHECK: vsbcbiq %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x04,0x00,0xf1,0xbd] #CHECK: vsbcbiq %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf4,0x00,0x02,0xbd] @@ -3906,6 +5295,22 @@ vsbcbiq %v31, %v0, %v0, %v0 vsbcbiq %v13, %v17, %v21, %v25 +#CHECK: vsbi %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xbf] +#CHECK: vsbi %v0, %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0xbf] +#CHECK: vsbi %v0, %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0xbf] +#CHECK: vsbi %v0, %v0, %v31, %v0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xbf] +#CHECK: vsbi %v0, %v31, %v0, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xbf] +#CHECK: vsbi %v31, %v0, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xbf] +#CHECK: vsbi %v13, %v17, %v21, %v25, 11 # encoding: [0xe7,0xd1,0x5b,0x00,0x97,0xbf] + + vsbi %v0, %v0, %v0, %v0, 0 + vsbi %v0, %v0, %v0, %v0, 15 + vsbi %v0, %v0, %v0, %v31, 0 + vsbi %v0, %v0, %v31, %v0, 0 + vsbi %v0, %v31, %v0, %v0, 0 + vsbi %v31, %v0, %v0, %v0, 0 + vsbi %v13, %v17, %v21, %v25, 11 + #CHECK: vsbiq %v0, %v0, %v0, %v0 # encoding: [0xe7,0x00,0x04,0x00,0x00,0xbf] #CHECK: vsbiq %v0, %v0, %v0, %v31 # encoding: [0xe7,0x00,0x04,0x00,0xf1,0xbf] #CHECK: vsbiq %v0, %v0, %v31, %v0 # encoding: [0xe7,0x00,0xf4,0x00,0x02,0xbf] @@ -3920,6 +5325,20 @@ vsbiq %v31, %v0, %v0, %v0 vsbiq %v13, %v17, %v21, %v25 +#CHECK: vscbi %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf5] +#CHECK: vscbi %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xf5] +#CHECK: vscbi %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf5] +#CHECK: vscbi %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf5] +#CHECK: vscbi %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xf5] +#CHECK: vscbi %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0xf5] + + vscbi %v0, %v0, %v0, 0 + vscbi %v0, %v0, %v0, 15 + vscbi %v0, %v0, %v31, 0 + vscbi %v0, %v31, %v0, 0 + vscbi %v31, %v0, %v0, 0 + vscbi %v18, %v3, %v20, 11 + #CHECK: vscbib %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xf5] #CHECK: vscbib %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0xf5] #CHECK: vscbib %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xf5] @@ -4038,6 +5457,22 @@ vsel %v31, %v0, %v0, %v0 vsel %v13, %v17, %v21, %v25 +#CHECK: vseg %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x5f] +#CHECK: vseg %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x5f] +#CHECK: vseg %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x5f] +#CHECK: vseg %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x5f] +#CHECK: vseg %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x5f] +#CHECK: vseg %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x5f] +#CHECK: vseg %v14, %v17, 11 # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0x5f] + + vseg %v0, %v0, 0 + vseg %v0, %v0, 15 + vseg %v0, %v15, 0 + vseg %v0, %v31, 0 + vseg %v15, %v0, 0 + vseg %v31, %v0, 0 + vseg %v14, %v17, 11 + #CHECK: vsegb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x5f] #CHECK: vsegb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x5f] #CHECK: vsegb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x5f] @@ -4332,6 +5767,38 @@ vstm %v31, %v0, 0 vstm %v14, %v17, 1074(%r5) +#CHECK: vstrc %v0, %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x8a] +#CHECK: vstrc %v0, %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0x8a] +#CHECK: vstrc %v0, %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x8a] +#CHECK: vstrc %v0, %v0, %v0, %v0, 15, 0 # encoding: [0xe7,0x00,0x0f,0x00,0x00,0x8a] +#CHECK: vstrc %v0, %v0, %v0, %v0, 0, 12 # encoding: [0xe7,0x00,0x00,0xc0,0x00,0x8a] +#CHECK: vstrc %v0, %v0, %v0, %v15, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x8a] +#CHECK: vstrc %v0, %v0, %v0, %v31, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf1,0x8a] +#CHECK: vstrc %v0, %v0, %v15, %v0, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x8a] +#CHECK: vstrc %v0, %v0, %v31, %v0, 0, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x8a] +#CHECK: vstrc %v0, %v15, %v0, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x8a] +#CHECK: vstrc %v0, %v31, %v0, %v0, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x8a] +#CHECK: vstrc %v15, %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x8a] +#CHECK: vstrc %v31, %v0, %v0, %v0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x8a] +#CHECK: vstrc %v18, %v3, %v20, %v5, 11, 4 # encoding: [0xe7,0x23,0x4b,0x40,0x5a,0x8a] +#CHECK: vstrc %v18, %v3, %v20, %v5, 0, 15 # encoding: [0xe7,0x23,0x40,0xf0,0x5a,0x8a] + + vstrc %v0, %v0, %v0, %v0, 0 + vstrc %v0, %v0, %v0, %v0, 15 + vstrc %v0, %v0, %v0, %v0, 0, 0 + vstrc %v0, %v0, %v0, %v0, 15, 0 + vstrc %v0, %v0, %v0, %v0, 0, 12 + vstrc %v0, %v0, %v0, %v15, 0 + vstrc %v0, %v0, %v0, %v31, 0 + vstrc %v0, %v0, %v15, %v0, 0 + vstrc %v0, %v0, %v31, %v0, 0 + vstrc %v0, %v15, %v0, %v0, 0 + vstrc %v0, %v31, %v0, %v0, 0 + vstrc %v15, %v0, %v0, %v0, 0 + vstrc %v31, %v0, %v0, %v0, 0 + vstrc %v18, %v3, %v20, %v5, 11, 4 + vstrc %v18, %v3, %v20, %v5, 0, 15 + #CHECK: vstrcb %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x8a] #CHECK: vstrcb %v0, %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x8a] #CHECK: vstrcb %v0, %v0, %v0, %v0, 12 # encoding: [0xe7,0x00,0x00,0xc0,0x00,0x8a] @@ -4440,6 +5907,34 @@ vstrczhs %v18, %v3, %v20, %v5, 8 vstrczhs %v18, %v3, %v20, %v5, 15 +#CHECK: vsum %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x64] +#CHECK: vsum %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x64] +#CHECK: vsum %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x64] +#CHECK: vsum %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x64] +#CHECK: vsum %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x64] +#CHECK: vsum %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0x64] + + vsum %v0, %v0, %v0, 0 + vsum %v0, %v0, %v0, 15 + vsum %v0, %v0, %v31, 0 + vsum %v0, %v31, %v0, 0 + vsum %v31, %v0, %v0, 0 + vsum %v18, %v3, %v20, 11 + +#CHECK: vsumg %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x65] +#CHECK: vsumg %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x65] +#CHECK: vsumg %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x65] +#CHECK: vsumg %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x65] +#CHECK: vsumg %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x65] +#CHECK: vsumg %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0x65] + + vsumg %v0, %v0, %v0, 0 + vsumg %v0, %v0, %v0, 15 + vsumg %v0, %v0, %v31, 0 + vsumg %v0, %v31, %v0, 0 + vsumg %v31, %v0, %v0, 0 + vsumg %v18, %v3, %v20, 11 + #CHECK: vsumgh %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x10,0x65] #CHECK: vsumgh %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x12,0x65] #CHECK: vsumgh %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x14,0x65] @@ -4464,6 +5959,20 @@ vsumgf %v31, %v0, %v0 vsumgf %v18, %v3, %v20 +#CHECK: vsumq %v0, %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0x67] +#CHECK: vsumq %v0, %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x67] +#CHECK: vsumq %v0, %v0, %v31, 0 # encoding: [0xe7,0x00,0xf0,0x00,0x02,0x67] +#CHECK: vsumq %v0, %v31, %v0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x67] +#CHECK: vsumq %v31, %v0, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x67] +#CHECK: vsumq %v18, %v3, %v20, 11 # encoding: [0xe7,0x23,0x40,0x00,0xba,0x67] + + vsumq %v0, %v0, %v0, 0 + vsumq %v0, %v0, %v0, 15 + vsumq %v0, %v0, %v31, 0 + vsumq %v0, %v31, %v0, 0 + vsumq %v31, %v0, %v0, 0 + vsumq %v18, %v3, %v20, 11 + #CHECK: vsumqf %v0, %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x20,0x67] #CHECK: vsumqf %v0, %v0, %v31 # encoding: [0xe7,0x00,0xf0,0x00,0x22,0x67] #CHECK: vsumqf %v0, %v31, %v0 # encoding: [0xe7,0x0f,0x00,0x00,0x24,0x67] @@ -4526,6 +6035,22 @@ vtm %v31, %v0 vtm %v14, %v17 +#CHECK: vuph %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xd7] +#CHECK: vuph %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xd7] +#CHECK: vuph %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xd7] +#CHECK: vuph %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xd7] +#CHECK: vuph %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xd7] +#CHECK: vuph %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xd7] +#CHECK: vuph %v14, %v17, 11 # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0xd7] + + vuph %v0, %v0, 0 + vuph %v0, %v0, 15 + vuph %v0, %v15, 0 + vuph %v0, %v31, 0 + vuph %v15, %v0, 0 + vuph %v31, %v0, 0 + vuph %v14, %v17, 11 + #CHECK: vuphb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xd7] #CHECK: vuphb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xd7] #CHECK: vuphb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xd7] @@ -4568,6 +6093,22 @@ vuphh %v31, %v0 vuphh %v14, %v17 +#CHECK: vuplh %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xd5] +#CHECK: vuplh %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xd5] +#CHECK: vuplh %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xd5] +#CHECK: vuplh %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xd5] +#CHECK: vuplh %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xd5] +#CHECK: vuplh %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xd5] +#CHECK: vuplh %v14, %v17, 11 # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0xd5] + + vuplh %v0, %v0, 0 + vuplh %v0, %v0, 15 + vuplh %v0, %v15, 0 + vuplh %v0, %v31, 0 + vuplh %v15, %v0, 0 + vuplh %v31, %v0, 0 + vuplh %v14, %v17, 11 + #CHECK: vuplhb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xd5] #CHECK: vuplhb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xd5] #CHECK: vuplhb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xd5] @@ -4610,6 +6151,22 @@ vuplhh %v31, %v0 vuplhh %v14, %v17 +#CHECK: vupl %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xd6] +#CHECK: vupl %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xd6] +#CHECK: vupl %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xd6] +#CHECK: vupl %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xd6] +#CHECK: vupl %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xd6] +#CHECK: vupl %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xd6] +#CHECK: vupl %v14, %v17, 11 # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0xd6] + + vupl %v0, %v0, 0 + vupl %v0, %v0, 15 + vupl %v0, %v15, 0 + vupl %v0, %v31, 0 + vupl %v15, %v0, 0 + vupl %v31, %v0, 0 + vupl %v14, %v17, 11 + #CHECK: vuplb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xd6] #CHECK: vuplb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xd6] #CHECK: vuplb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xd6] @@ -4652,6 +6209,22 @@ vuplhw %v31, %v0 vuplhw %v14, %v17 +#CHECK: vupll %v0, %v0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xd4] +#CHECK: vupll %v0, %v0, 15 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xd4] +#CHECK: vupll %v0, %v15, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xd4] +#CHECK: vupll %v0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xd4] +#CHECK: vupll %v15, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xd4] +#CHECK: vupll %v31, %v0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xd4] +#CHECK: vupll %v14, %v17, 11 # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0xd4] + + vupll %v0, %v0, 0 + vupll %v0, %v0, 15 + vupll %v0, %v15, 0 + vupll %v0, %v31, 0 + vupll %v15, %v0, 0 + vupll %v31, %v0, 0 + vupll %v14, %v17, 11 + #CHECK: vupllb %v0, %v0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xd4] #CHECK: vupllb %v0, %v15 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xd4] #CHECK: vupllb %v0, %v31 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xd4] @@ -4802,6 +6375,26 @@ wfadb %v31, %v0, %v0 wfadb %v18, %v3, %v20 +#CHECK: wfc %f0, %f0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xcb] +#CHECK: wfc %f0, %f0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xcb] +#CHECK: wfc %f0, %f0, 0, 15 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xcb] +#CHECK: wfc %f0, %f0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xcb] +#CHECK: wfc %f0, %f15, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xcb] +#CHECK: wfc %f0, %v31, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xcb] +#CHECK: wfc %f15, %f0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xcb] +#CHECK: wfc %v31, %f0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xcb] +#CHECK: wfc %f14, %v17, 11, 9 # encoding: [0xe7,0xe1,0x00,0x09,0xb4,0xcb] + + wfc %v0, %v0, 0, 0 + wfc %v0, %v0, 15, 0 + wfc %v0, %v0, 0, 15 + wfc %f0, %f0, 0, 0 + wfc %v0, %v15, 0, 0 + wfc %v0, %v31, 0, 0 + wfc %v15, %v0, 0, 0 + wfc %v31, %v0, 0, 0 + wfc %v14, %v17, 11, 9 + #CHECK: wfcdb %f0, %f0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xcb] #CHECK: wfcdb %f0, %f0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xcb] #CHECK: wfcdb %f0, %f15 # encoding: [0xe7,0x0f,0x00,0x00,0x30,0xcb] @@ -4817,7 +6410,7 @@ wfcdb %v15, %v0 wfcdb %v31, %v0 wfcdb %v14, %v17 - + #CHECK: wfcedb %f0, %f0, %f0 # encoding: [0xe7,0x00,0x00,0x08,0x30,0xe8] #CHECK: wfcedb %f0, %f0, %f0 # encoding: [0xe7,0x00,0x00,0x08,0x30,0xe8] #CHECK: wfcedb %f0, %f0, %v31 # encoding: [0xe7,0x00,0xf0,0x08,0x32,0xe8] @@ -4934,6 +6527,26 @@ wfidb %v31, %v0, 0, 0 wfidb %v14, %v17, 4, 10 +#CHECK: wfk %f0, %f0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xca] +#CHECK: wfk %f0, %f0, 15, 0 # encoding: [0xe7,0x00,0x00,0x00,0xf0,0xca] +#CHECK: wfk %f0, %f0, 0, 15 # encoding: [0xe7,0x00,0x00,0x0f,0x00,0xca] +#CHECK: wfk %f0, %f0, 0, 0 # encoding: [0xe7,0x00,0x00,0x00,0x00,0xca] +#CHECK: wfk %f0, %f15, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x00,0xca] +#CHECK: wfk %f0, %v31, 0, 0 # encoding: [0xe7,0x0f,0x00,0x00,0x04,0xca] +#CHECK: wfk %f15, %f0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x00,0xca] +#CHECK: wfk %v31, %f0, 0, 0 # encoding: [0xe7,0xf0,0x00,0x00,0x08,0xca] +#CHECK: wfk %f14, %v17, 11, 9 # encoding: [0xe7,0xe1,0x00,0x09,0xb4,0xca] + + wfk %v0, %v0, 0, 0 + wfk %v0, %v0, 15, 0 + wfk %v0, %v0, 0, 15 + wfk %f0, %f0, 0, 0 + wfk %v0, %v15, 0, 0 + wfk %v0, %v31, 0, 0 + wfk %v15, %v0, 0, 0 + wfk %v31, %v0, 0, 0 + wfk %v14, %v17, 11, 9 + #CHECK: wfkdb %f0, %f0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xca] #CHECK: wfkdb %f0, %f0 # encoding: [0xe7,0x00,0x00,0x00,0x30,0xca] #CHECK: wfkdb %f0, %f15 # encoding: [0xe7,0x0f,0x00,0x00,0x30,0xca] @@ -4950,6 +6563,24 @@ wfkdb %v31, %v0 wfkdb %v14, %v17 +#CHECK: wfpsodb %f0, %f0, 0 # encoding: [0xe7,0x00,0x00,0x08,0x30,0xcc] +#CHECK: wfpsodb %f0, %f0, 0 # encoding: [0xe7,0x00,0x00,0x08,0x30,0xcc] +#CHECK: wfpsodb %f0, %f0, 15 # encoding: [0xe7,0x00,0x00,0xf8,0x30,0xcc] +#CHECK: wfpsodb %f0, %f15, 0 # encoding: [0xe7,0x0f,0x00,0x08,0x30,0xcc] +#CHECK: wfpsodb %f0, %v31, 0 # encoding: [0xe7,0x0f,0x00,0x08,0x34,0xcc] +#CHECK: wfpsodb %f15, %f0, 0 # encoding: [0xe7,0xf0,0x00,0x08,0x30,0xcc] +#CHECK: wfpsodb %v31, %f0, 0 # encoding: [0xe7,0xf0,0x00,0x08,0x38,0xcc] +#CHECK: wfpsodb %f14, %v17, 7 # encoding: [0xe7,0xe1,0x00,0x78,0x34,0xcc] + + wfpsodb %v0, %v0, 0 + wfpsodb %f0, %f0, 0 + wfpsodb %v0, %v0, 15 + wfpsodb %v0, %v15, 0 + wfpsodb %v0, %v31, 0 + wfpsodb %v15, %v0, 0 + wfpsodb %v31, %v0, 0 + wfpsodb %v14, %v17, 7 + #CHECK: wflcdb %f0, %f0 # encoding: [0xe7,0x00,0x00,0x08,0x30,0xcc] #CHECK: wflcdb %f0, %f0 # encoding: [0xe7,0x00,0x00,0x08,0x30,0xcc] #CHECK: wflcdb %f0, %f15 # encoding: [0xe7,0x0f,0x00,0x08,0x30,0xcc] -- 2.7.4