From c48ffc92bc41e195a0b1989307fa2b5b1bf07bdf Mon Sep 17 00:00:00 2001 From: Stefan Stipanovic Date: Thu, 19 Sep 2024 09:21:20 +0200 Subject: [PATCH] [Xtensa] ESP32S3 TIE fix format_32 encoding and disassembler ambiguities between x24 and format_32 encoding. --- .../Disassembler/XtensaDisassembler.cpp | 22 +- .../lib/Target/Xtensa/XtensaS3DSPInstrInfo.td | 2434 ++++++++++++----- .../test/CodeGen/Xtensa/ee-intrinsics-loop.ll | 113 +- llvm/test/MC/Xtensa/xtensa-esp32s3-valid.s | 200 +- 4 files changed, 1916 insertions(+), 853 deletions(-) diff --git a/llvm/lib/Target/Xtensa/Disassembler/XtensaDisassembler.cpp b/llvm/lib/Target/Xtensa/Disassembler/XtensaDisassembler.cpp index e613c56e146d0e..2048422b27d877 100644 --- a/llvm/lib/Target/Xtensa/Disassembler/XtensaDisassembler.cpp +++ b/llvm/lib/Target/Xtensa/Disassembler/XtensaDisassembler.cpp @@ -865,7 +865,7 @@ static DecodeStatus readInstruction16(ArrayRef Bytes, uint64_t Address, /// Read three bytes from the ArrayRef and return 24 bit data static DecodeStatus readInstruction24(ArrayRef Bytes, uint64_t Address, uint64_t &Size, uint64_t &Insn, - bool IsLittleEndian) { + bool IsLittleEndian, bool CheckTIE = false) { // We want to read exactly 3 Bytes of data. if (Bytes.size() < 3) { Size = 0; @@ -875,6 +875,8 @@ static DecodeStatus readInstruction24(ArrayRef Bytes, uint64_t Address, if (!IsLittleEndian) { report_fatal_error("Big-endian mode currently is not supported!"); } else { + if (CheckTIE && (Bytes[0] & 0x8) != 0) + return MCDisassembler::Fail; Insn = (Bytes[2] << 16) | (Bytes[1] << 8) | (Bytes[0] << 0); } @@ -894,6 +896,8 @@ static DecodeStatus readInstruction32(ArrayRef Bytes, uint64_t Address, if (!IsLittleEndian) { report_fatal_error("Big-endian mode currently is not supported!"); } else { + if ((Bytes[0] & 0x8) == 0) + return MCDisassembler::Fail; Insn = (Bytes[3] << 24) | (Bytes[2] << 16) | (Bytes[1] << 8) | (Bytes[0] << 0); } @@ -959,15 +963,15 @@ DecodeStatus XtensaDisassembler::getInstruction(MCInst &MI, uint64_t &Size, if (hasESP32S3Ops()) { // Parse ESP32S3 24-bit instructions - Result = readInstruction24(Bytes, Address, Size, Insn, IsLittleEndian); - if (Result == MCDisassembler::Fail) - return MCDisassembler::Fail; - LLVM_DEBUG(dbgs() << "Trying ESP32S3 table (24-bit opcodes):\n"); - Result = decodeInstruction(DecoderTableESP32S324, MI, Insn, - Address, this, STI); + Result = readInstruction24(Bytes, Address, Size, Insn, IsLittleEndian, true); if (Result != MCDisassembler::Fail) { - Size = 3; - return Result; + LLVM_DEBUG(dbgs() << "Trying ESP32S3 table (24-bit opcodes):\n"); + Result = decodeInstruction(DecoderTableESP32S324, MI, Insn, Address, this, + STI); + if (Result != MCDisassembler::Fail) { + Size = 3; + return Result; + } } // Parse ESP32S3 32-bit instructions diff --git a/llvm/lib/Target/Xtensa/XtensaS3DSPInstrInfo.td b/llvm/lib/Target/Xtensa/XtensaS3DSPInstrInfo.td index a1b4b088e96f59..0c4a26cd25d3eb 100644 --- a/llvm/lib/Target/Xtensa/XtensaS3DSPInstrInfo.td +++ b/llvm/lib/Target/Xtensa/XtensaS3DSPInstrInfo.td @@ -107,14 +107,27 @@ def EE_CMUL_S16_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qz), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qz{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-6} = 0x3; - let Inst{5-4} = sel4{1-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qz{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{9-8} = sel4{1-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -135,14 +148,26 @@ def EE_CMUL_S16_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qz), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1c8; - let Inst{19-17} = qz{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-6} = 0x0; - let Inst{5-4} = sel4{1-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 0; + let Inst{23} = qy{0}; + let Inst{19} = 0; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qz{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{9-8} = sel4{1-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -165,16 +190,25 @@ def EE_FFT_AMS_S16_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qz, QR:$qz1), let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x34; - let Inst{22} = sel2{0}; - let Inst{21-20} = qz1{2-1}; - let Inst{19-17} = qm{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qz{2-0}; - let Inst{10-8} = qy{2-0}; - let Inst{7} = qz1{0}; - let Inst{6-4} = qu{2-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 0; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25} = sel2{0}; + let Inst{24} = qz1{2}; + let Inst{23} = qz{0}; + let Inst{22-20} = qy{2-0}; + let Inst{19} = qz1{1}; + let Inst{18-16} = qm{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qz{2-1}; + let Inst{11} = qz1{0}; + let Inst{10-8} = qu{2-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -197,16 +231,25 @@ def EE_FFT_AMS_S16_LD_INCP_UAUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qz, QR:$q let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x35; - let Inst{22} = sel2{0}; - let Inst{21-20} = qz1{2-1}; - let Inst{19-17} = qm{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qz{2-0}; - let Inst{10-8} = qy{2-0}; - let Inst{7} = qz1{0}; - let Inst{6-4} = qu{2-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 0; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = sel2{0}; + let Inst{24} = qz1{2}; + let Inst{23} = qz{0}; + let Inst{22-20} = qy{2-0}; + let Inst{19} = qz1{1}; + let Inst{18-16} = qm{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qz{2-1}; + let Inst{11} = qz1{0}; + let Inst{10-8} = qu{2-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -229,16 +272,25 @@ def EE_FFT_AMS_S16_LD_R32_DECP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qz, QR:$qz let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x36; - let Inst{22} = sel2{0}; - let Inst{21-20} = qz1{2-1}; - let Inst{19-17} = qm{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qz{2-0}; - let Inst{10-8} = qy{2-0}; - let Inst{7} = qz1{0}; - let Inst{6-4} = qu{2-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 0; + let Inst{28} = 1; + let Inst{27} = 1; + let Inst{26} = 0; + let Inst{25} = sel2{0}; + let Inst{24} = qz1{2}; + let Inst{23} = qz{0}; + let Inst{22-20} = qy{2-0}; + let Inst{19} = qz1{1}; + let Inst{18-16} = qm{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qz{2-1}; + let Inst{11} = qz1{0}; + let Inst{10-8} = qu{2-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -261,15 +313,23 @@ def EE_FFT_AMS_S16_ST_INCP: EE_Inst32<(outs QR:$qz1, AR:$as0r, AR:$asr), (ins Q let mayStore = 1; let Constraints = "$as0r = $as0, $asr = $as"; - let Inst{28-24} = 0x14; - let Inst{23} = sel2{0}; - let Inst{22-20} = qz1{2-0}; - let Inst{19-17} = qx{2-0}; - let Inst{16-14} = qy{2-0}; - let Inst{13-11} = qm{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = as{3-0}; - let Inst{3-0} = as0{3-0}; + let Inst{31} = 1; + let Inst{30} = 0; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = sel2{0}; + let Inst{25-24} = qz1{2-1}; + let Inst{23} = qm{0}; + let Inst{22-20} = qv{2-0}; + let Inst{19} = qz1{0}; + let Inst{18-16} = qx{2-0}; + let Inst{15-14} = qy{1-0}; + let Inst{13-12} = qm{2-1}; + let Inst{11-8} = as{3-0}; + let Inst{7-4} = as0{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qy{2}; } let usesCustomInserter = 1 in @@ -291,14 +351,23 @@ def EE_FFT_CMUL_S16_LD_XP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qz), (ins AR:$a let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x37; - let Inst{22-20} = sel8{2-0}; - let Inst{19-17} = qz{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qu{2-0}; - let Inst{10-8} = qy{2-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 0; + let Inst{28} = 1; + let Inst{27} = 1; + let Inst{26} = 1; + let Inst{25-24} = sel8{2-1}; + let Inst{23} = qu{0}; + let Inst{22-20} = qy{2-0}; + let Inst{19} = sel8{0}; + let Inst{18-16} = qz{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qu{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -321,15 +390,23 @@ def EE_FFT_CMUL_S16_ST_XP: EE_Inst32<(outs AR:$asr), (ins QR:$qx, QR:$qy, QR:$q let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-24} = 0x15; - let Inst{23-22} = sar4{1-0}; - let Inst{21-20} = upd4{1-0}; - let Inst{19-17} = qv{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = sel8{2-0}; - let Inst{10-8} = qy{2-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 0; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 1; + let Inst{26-25} = sar4{1-0}; + let Inst{24} = upd4{1}; + let Inst{23} = sel8{0}; + let Inst{22-20} = qy{2-0}; + let Inst{19} = upd4{0}; + let Inst{18-16} = qv{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = sel8{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -378,14 +455,28 @@ def EE_FFT_R2BF_S16_ST_INCP: EE_Inst32<(outs QR:$qa0, AR:$asr), (ins QR:$qx, QR let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1d1; - let Inst{19-17} = qa0{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13} = 0x0; - let Inst{12-11} = sar4{1-0}; - let Inst{10-8} = qy{2-0}; - let Inst{7-4} = 0x4; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 1; + let Inst{26} = 0; + let Inst{25} = 0; + let Inst{24} = 0; + let Inst{23} = sar4{0}; + let Inst{19} = 1; + let Inst{22-20} = qy{2-0}; + let Inst{18-16} = qa0{2-0}; + let Inst{13} = 0; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{12} = sar4{1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -432,13 +523,20 @@ def EE_LDF_128_IP: EE_Inst32<(outs FPR:$fu3, FPR:$fu2, FPR:$fu1, FPR:$fu0, AR:$ let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-24} = 0x10; - let Inst{23-20} = fu3{3-0}; - let Inst{19-16} = fu2{3-0}; + let Inst{31} = 1; + let Inst{30} = 0; + let Inst{29} = 0; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26-24} = fu3{3-1}; + let Inst{23-20} = fu0{3-0}; + let Inst{19} = fu3{0}; + let Inst{18-16} = fu2{3-1}; let Inst{15-12} = fu1{3-0}; - let Inst{11-8} = fu0{3-0}; - let Inst{7-4} = imm16f{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{11-8} = imm16f{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = fu2{0}; } let usesCustomInserter = 1 in @@ -459,13 +557,20 @@ def EE_LDF_128_XP: EE_Inst32<(outs FPR:$fu3, FPR:$fu2, FPR:$fu1, FPR:$fu0, AR:$ let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-24} = 0x11; - let Inst{23-20} = fu3{3-0}; - let Inst{19-16} = fu2{3-0}; + let Inst{31} = 1; + let Inst{30} = 0; + let Inst{29} = 0; + let Inst{28} = 0; + let Inst{27} = 1; + let Inst{26-24} = fu3{3-1}; + let Inst{23-20} = fu0{3-0}; + let Inst{19} = fu3{0}; + let Inst{18-16} = fu2{3-1}; let Inst{15-12} = fu1{3-0}; - let Inst{11-8} = fu0{3-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = fu2{0}; } let usesCustomInserter = 1 in @@ -484,13 +589,23 @@ def EE_LDF_64_IP: EE_Inst32<(outs FPR:$fu1, FPR:$fu0, AR:$asr), (ins AR:$as, of let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-16} = imm8{7-1}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = imm8{7-6}; + let Inst{23-20} = fu0{3-0}; + let Inst{19-16} = imm8{5-2}; + let Inst{11} = 0; + let Inst{10} = 1; + let Inst{9} = 0; let Inst{15-12} = fu1{3-0}; - let Inst{11-8} = fu0{3-0}; - let Inst{7-5} = 0x2; - let Inst{4} = imm8{0}; - let Inst{3-0} = as{3-0}; + let Inst{8} = imm8{0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = imm8{1}; } let usesCustomInserter = 1 in @@ -701,13 +816,29 @@ def EE_LDXQ_32: EE_Inst32<(outs QR:$qu), (ins QR:$qs, AR:$as, select_4:$sel4, s let mayLoad = 1; - let Inst{28-22} = 0x70; - let Inst{21-20} = sel4{1-0}; - let Inst{19-17} = qu{2-0}; - let Inst{16-14} = qs{2-0}; - let Inst{13-11} = sel8{2-0}; - let Inst{10-4} = 0x7d; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25} = 0; + let Inst{24} = sel4{1}; + let Inst{22} = 1; + let Inst{21} = 1; + let Inst{20} = 1; + let Inst{23} = sel8{0}; + let Inst{19} = sel4{0}; + let Inst{18-16} = qu{2-0}; + let Inst{15-14} = qs{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = sel8{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qs{2}; } let usesCustomInserter = 1 in @@ -1272,15 +1403,25 @@ def EE_SRC_Q_LD_IP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), (ins AR:$as, of let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x38; - let Inst{22-20} = imm16{7-5}; - let Inst{19-17} = qu{2-0}; - let Inst{16-14} = qs0{2-0}; - let Inst{13-11} = imm16{4-2}; - let Inst{10-8} = qs1{2-0}; - let Inst{7-6} = 0x0; - let Inst{5-4} = imm16{1-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = imm16{7-6}; + let Inst{23} = imm16{2}; + let Inst{22-20} = qs1{2-0}; + let Inst{19} = imm16{5}; + let Inst{18-16} = qu{2-0}; + let Inst{15-14} = qs0{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{13-12} = imm16{4-3}; + let Inst{9-8} = imm16{1-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qs0{2}; } let usesCustomInserter = 1 in @@ -1300,13 +1441,25 @@ def EE_SRC_Q_LD_XP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), (ins AR:$as, AR let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-20} = 0x1d0; - let Inst{19-17} = qu{2-0}; - let Inst{16-14} = qs0{2-0}; - let Inst{13-11} = 0x0; - let Inst{10-8} = qs1{2-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 1; + let Inst{26} = 0; + let Inst{25} = 0; + let Inst{24} = 0; + let Inst{23} = 0; + let Inst{19} = 0; + let Inst{22-20} = qs1{2-0}; + let Inst{18-16} = qu{2-0}; + let Inst{13} = 0; + let Inst{12} = 0; + let Inst{15-14} = qs0{1-0}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qs0{2}; } let usesCustomInserter = 1 in @@ -1372,13 +1525,20 @@ def EE_STF_128_IP: EE_Inst32<(outs AR:$asr), (ins FPR:$fv3, FPR:$fv2, FPR:$fv1, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-24} = 0x12; - let Inst{23-20} = fv3{3-0}; - let Inst{19-16} = fv2{3-0}; + let Inst{31} = 1; + let Inst{30} = 0; + let Inst{29} = 0; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26-24} = fv3{3-1}; + let Inst{23-20} = fv0{3-0}; + let Inst{19} = fv3{0}; + let Inst{18-16} = fv2{3-1}; let Inst{15-12} = fv1{3-0}; - let Inst{11-8} = fv0{3-0}; - let Inst{7-4} = imm16f{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{11-8} = imm16f{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = fv2{0}; } let usesCustomInserter = 1 in @@ -1399,13 +1559,20 @@ def EE_STF_128_XP: EE_Inst32<(outs AR:$asr), (ins FPR:$fv3, FPR:$fv2, FPR:$fv1, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-24} = 0x13; - let Inst{23-20} = fv3{3-0}; - let Inst{19-16} = fv2{3-0}; + let Inst{31} = 1; + let Inst{30} = 0; + let Inst{29} = 0; + let Inst{28} = 1; + let Inst{27} = 1; + let Inst{26-24} = fv3{3-1}; + let Inst{23-20} = fv0{3-0}; + let Inst{19} = fv3{0}; + let Inst{18-16} = fv2{3-1}; let Inst{15-12} = fv1{3-0}; - let Inst{11-8} = fv0{3-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = fv2{0}; } let usesCustomInserter = 1 in @@ -1424,13 +1591,23 @@ def EE_STF_64_IP: EE_Inst32<(outs AR:$asr), (ins FPR:$fv1, FPR:$fv0, AR:$as, of let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-16} = imm8{7-1}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = imm8{7-6}; + let Inst{23-20} = fv0{3-0}; + let Inst{19-16} = imm8{5-2}; + let Inst{11} = 0; + let Inst{10} = 1; + let Inst{9} = 1; let Inst{15-12} = fv1{3-0}; - let Inst{11-8} = fv0{3-0}; - let Inst{7-5} = 0x3; - let Inst{4} = imm8{0}; - let Inst{3-0} = as{3-0}; + let Inst{8} = imm8{0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = imm8{1}; } let usesCustomInserter = 1 in @@ -1473,14 +1650,29 @@ def EE_STXQ_32: EE_Inst32<(outs), (ins QR:$qv, QR:$qs, AR:$as, select_4:$sel4, let mayStore = 1; - let Inst{28-22} = 0x73; - let Inst{21-20} = sel4{1-0}; - let Inst{19-17} = 0x0; - let Inst{16-14} = qs{2-0}; - let Inst{13-11} = sel8{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x0; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 1; + let Inst{24} = sel4{1}; + let Inst{23} = sel8{0}; + let Inst{22-20} = qv{2-0}; + let Inst{18} = 0; + let Inst{17} = 0; + let Inst{16} = 0; + let Inst{19} = sel4{0}; + let Inst{15-14} = qs{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = sel8{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qs{2}; } let usesCustomInserter = 1 in @@ -1656,13 +1848,28 @@ def EE_VADDS_S16_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x2d; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 1; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -1682,13 +1889,27 @@ def EE_VADDS_S16_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1c9; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x0; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 0; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -1732,13 +1953,28 @@ def EE_VADDS_S32_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x3d; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 1; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -1758,13 +1994,27 @@ def EE_VADDS_S32_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1c9; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x1; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 0; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -1808,13 +2058,28 @@ def EE_VADDS_S8_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x1c; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -1834,13 +2099,27 @@ def EE_VADDS_S8_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1c9; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x2; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 0; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 1; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2489,13 +2768,28 @@ def EE_VMAX_S16_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x1d; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2515,13 +2809,27 @@ def EE_VMAX_S16_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1c9; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x3; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 0; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 1; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2565,13 +2873,28 @@ def EE_VMAX_S32_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x1e; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 1; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2591,13 +2914,27 @@ def EE_VMAX_S32_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1ca; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x0; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 1; + let Inst{23} = qy{0}; + let Inst{19} = 0; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2641,13 +2978,28 @@ def EE_VMAX_S8_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x1f; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 1; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2667,13 +3019,27 @@ def EE_VMAX_S8_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1cb; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x0; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 1; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2717,13 +3083,28 @@ def EE_VMIN_S16_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x2e; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 1; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 1; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2743,13 +3124,27 @@ def EE_VMIN_S16_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1ca; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x1; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 1; + let Inst{23} = qy{0}; + let Inst{19} = 0; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2793,13 +3188,28 @@ def EE_VMIN_S32_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x3e; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 1; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 1; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2819,13 +3229,27 @@ def EE_VMIN_S32_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1cb; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x1; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 1; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2869,13 +3293,28 @@ def EE_VMIN_S8_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x2f; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 1; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 1; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2895,13 +3334,27 @@ def EE_VMIN_S8_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1ca; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x2; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 1; + let Inst{23} = qy{0}; + let Inst{19} = 0; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 1; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2941,15 +3394,26 @@ def EE_VMULAS_S16_ACCX_LD_IP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, of let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-25} = 0xf; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x0; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x0; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{18} = 0; + let Inst{17} = 0; + let Inst{16} = 0; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2971,15 +3435,22 @@ def EE_VMULAS_S16_ACCX_LD_IP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), ( let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-25} = 0x0; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 0; + let Inst{30} = 0; + let Inst{29} = 0; + let Inst{28} = 0; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -2999,14 +3470,27 @@ def EE_VMULAS_S16_ACCX_LD_XP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, AR let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x3c; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x0; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x1; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{18} = 0; + let Inst{17} = 0; + let Inst{16} = 0; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3028,14 +3512,23 @@ def EE_VMULAS_S16_ACCX_LD_XP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), ( let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x2c; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 0; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3104,14 +3597,26 @@ def EE_VMULAS_S16_QACC_LDBC_INCP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = 0x8; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 0; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3131,15 +3636,26 @@ def EE_VMULAS_S16_QACC_LD_IP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, of let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-25} = 0xf; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x1; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x0; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{18} = 0; + let Inst{17} = 0; + let Inst{16} = 1; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3161,15 +3677,22 @@ def EE_VMULAS_S16_QACC_LD_IP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), ( let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-25} = 0x1; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 0; + let Inst{30} = 0; + let Inst{29} = 0; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3189,14 +3712,27 @@ def EE_VMULAS_S16_QACC_LD_XP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, AR let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x3c; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x1; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x1; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{18} = 0; + let Inst{17} = 0; + let Inst{16} = 1; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3218,14 +3754,23 @@ def EE_VMULAS_S16_QACC_LD_XP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), ( let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x2d; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 0; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3265,15 +3810,26 @@ def EE_VMULAS_S8_ACCX_LD_IP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, off let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-25} = 0xf; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x2; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x0; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{18} = 0; + let Inst{17} = 1; + let Inst{16} = 0; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3295,15 +3851,22 @@ def EE_VMULAS_S8_ACCX_LD_IP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), (i let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-25} = 0x2; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 0; + let Inst{30} = 0; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3323,14 +3886,27 @@ def EE_VMULAS_S8_ACCX_LD_XP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, AR: let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x3c; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x2; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x1; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{18} = 0; + let Inst{17} = 1; + let Inst{16} = 0; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3352,14 +3928,23 @@ def EE_VMULAS_S8_ACCX_LD_XP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), (i let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x2e; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 0; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 1; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3428,14 +4013,26 @@ def EE_VMULAS_S8_QACC_LDBC_INCP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r) let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = 0x9; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 0; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3455,15 +4052,26 @@ def EE_VMULAS_S8_QACC_LD_IP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, off let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-25} = 0xf; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x3; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x0; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{18} = 0; + let Inst{17} = 1; + let Inst{16} = 1; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3485,15 +4093,22 @@ def EE_VMULAS_S8_QACC_LD_IP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), (i let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-25} = 0x3; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 0; + let Inst{30} = 0; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3513,14 +4128,27 @@ def EE_VMULAS_S8_QACC_LD_XP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, AR: let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x3c; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x3; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x1; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{18} = 0; + let Inst{17} = 1; + let Inst{16} = 1; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3542,14 +4170,23 @@ def EE_VMULAS_S8_QACC_LD_XP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), (i let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x2f; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 0; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 1; + let Inst{26} = 1; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3589,15 +4226,26 @@ def EE_VMULAS_U16_ACCX_LD_IP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, of let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-25} = 0xf; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x4; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x0; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{18} = 1; + let Inst{17} = 0; + let Inst{16} = 0; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3619,15 +4267,22 @@ def EE_VMULAS_U16_ACCX_LD_IP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), ( let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-25} = 0x4; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 0; + let Inst{30} = 1; + let Inst{29} = 0; + let Inst{28} = 0; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3647,14 +4302,27 @@ def EE_VMULAS_U16_ACCX_LD_XP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, AR let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x3c; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x4; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x1; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{18} = 1; + let Inst{17} = 0; + let Inst{16} = 0; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3676,14 +4344,23 @@ def EE_VMULAS_U16_ACCX_LD_XP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), ( let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x30; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 0; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3752,14 +4429,26 @@ def EE_VMULAS_U16_QACC_LDBC_INCP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = 0xa; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 0; + let Inst{9} = 1; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3779,15 +4468,26 @@ def EE_VMULAS_U16_QACC_LD_IP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, of let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-25} = 0xf; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x5; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x0; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{18} = 1; + let Inst{17} = 0; + let Inst{16} = 1; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3809,15 +4509,22 @@ def EE_VMULAS_U16_QACC_LD_IP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), ( let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-25} = 0x5; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 0; + let Inst{30} = 1; + let Inst{29} = 0; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3837,14 +4544,27 @@ def EE_VMULAS_U16_QACC_LD_XP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, AR let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x3c; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x5; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x1; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{18} = 1; + let Inst{17} = 0; + let Inst{16} = 1; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3866,14 +4586,23 @@ def EE_VMULAS_U16_QACC_LD_XP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), ( let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x31; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 0; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3913,15 +4642,26 @@ def EE_VMULAS_U8_ACCX_LD_IP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, off let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-25} = 0xf; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x6; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x0; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{18} = 1; + let Inst{17} = 1; + let Inst{16} = 0; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3943,15 +4683,22 @@ def EE_VMULAS_U8_ACCX_LD_IP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), (i let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-25} = 0x6; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 0; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -3971,14 +4718,27 @@ def EE_VMULAS_U8_ACCX_LD_XP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, AR: let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x3c; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x6; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x1; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{18} = 1; + let Inst{17} = 1; + let Inst{16} = 0; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4000,14 +4760,23 @@ def EE_VMULAS_U8_ACCX_LD_XP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), (i let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x32; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 0; + let Inst{28} = 0; + let Inst{27} = 1; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4076,14 +4845,26 @@ def EE_VMULAS_U8_QACC_LDBC_INCP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r) let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = 0xb; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 0; + let Inst{9} = 1; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4103,15 +4884,26 @@ def EE_VMULAS_U8_QACC_LD_IP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, off let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-25} = 0xf; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x7; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x0; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{18} = 1; + let Inst{17} = 1; + let Inst{16} = 1; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4133,15 +4925,22 @@ def EE_VMULAS_U8_QACC_LD_IP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), (i let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-25} = 0x7; - let Inst{24-23} = imm16{5-4}; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = imm16{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 0; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27-26} = imm16{5-4}; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = imm16{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4161,14 +4960,27 @@ def EE_VMULAS_U8_QACC_LD_XP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, AR: let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x3c; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = 0x7; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = 0x1; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 1; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{18} = 1; + let Inst{17} = 1; + let Inst{16} = 1; + let Inst{19} = qu{0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4190,14 +5002,23 @@ def EE_VMULAS_U8_QACC_LD_XP_QUP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qs0r), (i let mayLoad = 1; let Constraints = "$asr = $as, $qs0r = $qs0"; - let Inst{28-23} = 0x33; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qs1{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qs0{2-0}; - let Inst{7-4} = ad{3-0}; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 0; + let Inst{28} = 0; + let Inst{27} = 1; + let Inst{26} = 1; + let Inst{25-24} = qu{2-1}; + let Inst{23} = qy{0}; + let Inst{22-20} = qs0{2-0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qs1{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{13-12} = qy{2-1}; + let Inst{11-8} = ad{3-0}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4241,13 +5062,28 @@ def EE_VMUL_S16_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qz), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qz{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x3f; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 1; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qz{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 1; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4267,13 +5103,27 @@ def EE_VMUL_S16_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qz), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1cb; - let Inst{19-17} = qz{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x2; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 1; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qz{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 1; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4317,13 +5167,28 @@ def EE_VMUL_S8_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qz), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qz{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x4c; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 1; + let Inst{21} = 0; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qz{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4343,13 +5208,27 @@ def EE_VMUL_S8_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qz), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1ca; - let Inst{19-17} = qz{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x3; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 1; + let Inst{23} = qy{0}; + let Inst{19} = 0; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qz{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 1; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4393,13 +5272,28 @@ def EE_VMUL_U16_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qz), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qz{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x5c; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 1; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qz{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4419,13 +5313,27 @@ def EE_VMUL_U16_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qz), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1cb; - let Inst{19-17} = qz{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x3; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 1; + let Inst{25} = 0; + let Inst{24} = 1; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qz{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 1; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4469,13 +5377,28 @@ def EE_VMUL_U8_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qz), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qz{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x6c; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 1; + let Inst{21} = 1; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qz{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4495,13 +5418,27 @@ def EE_VMUL_U8_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qz), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1d1; - let Inst{19-17} = qz{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x0; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 1; + let Inst{26} = 0; + let Inst{25} = 0; + let Inst{24} = 0; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qz{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4666,13 +5603,28 @@ def EE_VSMULAS_S16_QACC_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = sel8{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x7c; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 1; + let Inst{21} = 1; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = sel8{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4718,15 +5670,28 @@ def EE_VSMULAS_S8_QACC_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = sel16{3-1}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-9} = 0x1; - let Inst{8} = sel16{0}; - let Inst{7-4} = 0xc; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 0; + let Inst{21} = 1; + let Inst{23} = qy{0}; + let Inst{20} = sel16{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = sel16{3-1}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4941,13 +5906,28 @@ def EE_VSUBS_S16_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x4d; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 1; + let Inst{21} = 0; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -4967,13 +5947,27 @@ def EE_VSUBS_S16_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1d1; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x1; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 1; + let Inst{26} = 0; + let Inst{25} = 0; + let Inst{24} = 0; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -5017,13 +6011,28 @@ def EE_VSUBS_S32_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x5d; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 1; + let Inst{21} = 0; + let Inst{20} = 1; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -5043,13 +6052,27 @@ def EE_VSUBS_S32_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1d1; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x2; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 1; + let Inst{26} = 0; + let Inst{25} = 0; + let Inst{24} = 0; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 1; + let Inst{8} = 0; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -5093,13 +6116,28 @@ def EE_VSUBS_S8_LD_INCP: EE_Inst32<(outs QR:$qu, AR:$asr, QR:$qa), (ins AR:$as, let mayLoad = 1; let Constraints = "$asr = $as"; - let Inst{28-23} = 0x38; - let Inst{22-20} = qu{2-0}; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-4} = 0x6d; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 0; + let Inst{26} = 0; + let Inst{25-24} = qu{2-1}; + let Inst{22} = 1; + let Inst{21} = 1; + let Inst{20} = 0; + let Inst{23} = qy{0}; + let Inst{19} = qu{0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 1; + let Inst{10} = 1; + let Inst{9} = 0; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in @@ -5119,13 +6157,27 @@ def EE_VSUBS_S8_ST_INCP: EE_Inst32<(outs AR:$asr, QR:$qa), (ins QR:$qv, AR:$as, let mayStore = 1; let Constraints = "$asr = $as"; - let Inst{28-20} = 0x1d1; - let Inst{19-17} = qa{2-0}; - let Inst{16-14} = qx{2-0}; - let Inst{13-11} = qy{2-0}; - let Inst{10-8} = qv{2-0}; - let Inst{7-4} = 0x3; - let Inst{3-0} = as{3-0}; + let Inst{31} = 1; + let Inst{30} = 1; + let Inst{29} = 1; + let Inst{28} = 0; + let Inst{27} = 1; + let Inst{26} = 0; + let Inst{25} = 0; + let Inst{24} = 0; + let Inst{23} = qy{0}; + let Inst{19} = 1; + let Inst{22-20} = qv{2-0}; + let Inst{18-16} = qa{2-0}; + let Inst{15-14} = qx{1-0}; + let Inst{11} = 0; + let Inst{10} = 0; + let Inst{9} = 1; + let Inst{8} = 1; + let Inst{13-12} = qy{2-1}; + let Inst{7-4} = as{3-0}; + let Inst{3-1} = 0b111; + let Inst{0} = qx{2}; } let usesCustomInserter = 1 in diff --git a/llvm/test/CodeGen/Xtensa/ee-intrinsics-loop.ll b/llvm/test/CodeGen/Xtensa/ee-intrinsics-loop.ll index ff5c5389d83e0c..d1b8a77ca4f4da 100644 --- a/llvm/test/CodeGen/Xtensa/ee-intrinsics-loop.ll +++ b/llvm/test/CodeGen/Xtensa/ee-intrinsics-loop.ll @@ -1,7 +1,71 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 ; RUN: llc -mtriple=xtensa -mcpu=esp32s3 < %s | FileCheck %s ; Function Attrs: nounwind define dso_local void @test(i32 noundef %ptr.coerce, i32 noundef %ptr2.coerce) local_unnamed_addr #0 { +; CHECK-LABEL: test: +; CHECK: entry a1, 32 +; CHECK-NEXT: l32i.n a8, a2, 0 +; CHECK-NEXT: movi.n a9, 16 +; CHECK-NEXT: mov.n a10, a9 +; CHECK-NEXT: ee.vld.128.ip q1, a10, 0 +; CHECK-NEXT: mov.n a10, a9 +; CHECK-NEXT: ee.vld.128.ip q1, a10, 0 +; CHECK-NEXT: mov.n a10, a9 +; CHECK-NEXT: ee.vld.128.ip q1, a10, 0 +; CHECK-NEXT: mov.n a10, a8 +; CHECK-NEXT: ee.vld.128.ip q1, a10, 0 +; CHECK-NEXT: mov.n a10, a8 +; CHECK-NEXT: ee.vld.128.ip q2, a10, 0 +; CHECK-NEXT: mov.n a10, a8 +; CHECK-NEXT: ee.vld.128.ip q3, a10, 0 +; CHECK-NEXT: mov.n a10, a8 +; CHECK-NEXT: ee.vld.128.ip q3, a10, 0 +; CHECK-NEXT: mov.n a10, a8 +; CHECK-NEXT: ee.vld.128.ip q3, a10, 0 +; CHECK-NEXT: mov.n a10, a8 +; CHECK-NEXT: ee.vld.128.ip q3, a10, 0 +; CHECK-NEXT: mov.n a10, a8 +; CHECK-NEXT: ee.vld.128.ip q3, a10, 0 +; CHECK-NEXT: ee.vmax.s8 q1, q2, q3 +; CHECK-NEXT: ee.vmax.s16 q4, q5, q7 +; CHECK-NEXT: l32r a10, .LCPI0_0 +; CHECK-NEXT: wfr f8, a10 +; CHECK-NEXT: l32r a10, .LCPI0_1 +; CHECK-NEXT: wfr f9, a10 +; CHECK-NEXT: l32r a10, .LCPI0_2 +; CHECK-NEXT: wfr f10, a10 +; CHECK-NEXT: l32r a10, .LCPI0_3 +; CHECK-NEXT: wfr f11, a10 +; CHECK-NEXT: mov.n a10, a8 +; CHECK-NEXT: ee.stf.128.ip f11, f10, f9, f8, a10, 16 +; CHECK-NEXT: mov.n a10, a8 +; CHECK-NEXT: ee.stf.128.ip f8, f8, f8, f8, a10, 16 +; CHECK-NEXT: mov.n a10, a9 +; CHECK-NEXT: ee.stf.128.xp f8, f8, f8, f8, a10, a8 +; CHECK-NEXT: movi.n a10, 32 +; CHECK-NEXT: .LBB0_1: # %for.body +; CHECK-NEXT: # =>This Inner Loop Header: Depth=1 +; CHECK-NEXT: mov.n a11, a8 +; CHECK-NEXT: ee.ld.128.usar.ip q4, a11, 16 +; CHECK-NEXT: mov.n a11, a8 +; CHECK-NEXT: ee.src.q.ld.ip q3, a11, 16, q4, q2 +; CHECK-NEXT: movi.n a11, 10 +; CHECK-NEXT: ee.vmulas.s16.accx.ld.ip q0, a11, 16, q4, q6 +; CHECK-NEXT: mov.n a11, a8 +; CHECK-NEXT: ee.vmulas.s16.accx.ld.xp.qup q4, a11, a9, q0, q4, q2, q3 +; CHECK-NEXT: mov.n a11, a8 +; CHECK-NEXT: ee.ld.128.usar.xp q4, a11, a9 +; CHECK-NEXT: mov.n a11, a8 +; CHECK-NEXT: ee.vmulas.s16.accx.ld.ip.qup q3, a11, 16, q0, q3, q4, q2 +; CHECK-NEXT: addi.n a10, a10, -1 +; CHECK-NEXT: bnez a10, .LBB0_1 +; CHECK-NEXT: # %bb.2: # %for.cond.cleanup +; CHECK-NEXT: movi.n a8, 0 +; CHECK-NEXT: wur.sar_byte a8 +; CHECK-NEXT: wur.accx_0 a8 +; CHECK-NEXT: wur.accx_1 a8 +; CHECK-NEXT: retw.n entry: %coerce.val.ip = inttoptr i32 %ptr.coerce to ptr %0 = load i32, ptr %coerce.val.ip, align 4, !tbaa !2 @@ -41,55 +105,6 @@ for.body: ; preds = %entry, %for.body br i1 %exitcond.not, label %for.cond.cleanup, label %for.body, !llvm.loop !6 } -; CHECK-LABEL: test: # @test -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: entry a1, 32 -; CHECK-NEXT: l32i.n a8, a2, 0 -; CHECK-NEXT: movi.n a9, 16 -; CHECK-NEXT: ee.vld.128.ip q1, a9, 0 -; CHECK-NEXT: ee.vld.128.ip q1, a9, 0 -; CHECK-NEXT: ee.vld.128.ip q1, a9, 0 -; CHECK-NEXT: ee.vld.128.ip q1, a8, 0 -; CHECK-NEXT: ee.vld.128.ip q2, a8, 0 -; CHECK-NEXT: ee.vld.128.ip q3, a8, 0 -; CHECK-NEXT: ee.vld.128.ip q3, a8, 0 -; CHECK-NEXT: ee.vld.128.ip q3, a8, 0 -; CHECK-NEXT: ee.vld.128.ip q3, a8, 0 -; CHECK-NEXT: ee.vld.128.ip q3, a8, 0 -; CHECK-NEXT: ee.vmax.s8 q1, q2, q3 -; CHECK-NEXT: ee.vmax.s16 q4, q5, q7 -; CHECK-NEXT: l32r a10, .LCPI0_0 -; CHECK-NEXT: wfr f8, a10 -; CHECK-NEXT: l32r a10, .LCPI0_1 -; CHECK-NEXT: wfr f9, a10 -; CHECK-NEXT: l32r a10, .LCPI0_2 -; CHECK-NEXT: wfr f10, a10 -; CHECK-NEXT: l32r a10, .LCPI0_3 -; CHECK-NEXT: wfr f11, a10 -; CHECK-NEXT: ee.stf.128.ip f11, f10, f9, f8, a8, 16 -; CHECK-NEXT: ee.stf.128.ip f8, f8, f8, f8, a8, 16 -; CHECK-NEXT: ee.stf.128.xp f8, f8, f8, f8, a9, a8 -; CHECK-NEXT: movi.n a10, 32 -; CHECK-NEXT: movi.n a11, 10 -; CHECK-NEXT: .LBB0_1: # %for.body -; CHECK-NEXT: # =>This Inner Loop Header: Depth=1 -; CHECK-NEXT: ee.ld.128.usar.ip q4, a8, 16 -; CHECK-NEXT: ee.src.q.ld.ip q3, a8, 16, q4, q2 -; CHECK-NEXT: ee.vmulas.s16.accx.ld.ip q0, a11, 16, q4, q6 -; CHECK-NEXT: ee.vmulas.s16.accx.ld.xp.qup q4, a8, a9, q0, q4, q2, q3 -; CHECK-NEXT: ee.ld.128.usar.xp q4, a8, a9 -; CHECK-NEXT: ee.vmulas.s16.accx.ld.ip.qup q3, a8, 16, q0, q3, q4, q2 -; CHECK-NEXT: addi.n a10, a10, -1 -; CHECK-NEXT: bnez a10, .LBB0_1 -; CHECK-NEXT: # %bb.2: # %for.cond.cleanup -; CHECK-NEXT: movi.n a8, 0 -; CHECK-NEXT: wur.sar_byte a8 -; CHECK-NEXT: wur.accx_0 a8 -; CHECK-NEXT: wur.accx_1 a8 -; CHECK-NEXT: retw.n - - - ; Function Attrs: nounwind declare void @llvm.xtensa.ee.vld.128.ip(i32 immarg, i32, i32 immarg) #1 diff --git a/llvm/test/MC/Xtensa/xtensa-esp32s3-valid.s b/llvm/test/MC/Xtensa/xtensa-esp32s3-valid.s index c5ed22386ec0cc..5c55229199d163 100644 --- a/llvm/test/MC/Xtensa/xtensa-esp32s3-valid.s +++ b/llvm/test/MC/Xtensa/xtensa-esp32s3-valid.s @@ -1,25 +1,18 @@ # RUN: llvm-mc %s -triple=xtensa -mcpu=esp32s3 -show-encoding \ -# RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s +# RUN: | FileCheck %s .align 4 -LBL0: -# CHECK-INST: ee.clr_bit_gpio_out 52 -# CHECK: encoding: [0x44,0x43,0x76] +LBL0: +# CHECK: LBL0: ee.clr_bit_gpio_out 52 - -# CHECK-INST: ee.get_gpio_in a2 -# CHECK: encoding: [0x24,0x08,0x65] +# CHECK: ee.clr_bit_gpio_out 52 # encoding: [0x44,0x43,0x76] ee.get_gpio_in a2 - -# CHECK-INST: ee.set_bit_gpio_out 18 -# CHECK: encoding: [0x24,0x41,0x75] +# CHECK: ee.get_gpio_in a2 # encoding: [0x24,0x08,0x65] ee.set_bit_gpio_out 18 - -# CHECK-INST: ee.wr_mask_gpio_out a3, a2 -# CHECK: encoding: [0x34,0x42,0x72] +# CHECK: ee.set_bit_gpio_out 18 # encoding: [0x24,0x41,0x75] ee.wr_mask_gpio_out a3, a2 - +# CHECK: ee.wr_mask_gpio_out a3, a2 # encoding: [0x34,0x42,0x72] ee.andq q5, q6, q4 # CHECK: ee.andq q5, q6, q4 # encoding: [0xc4,0xb8,0xed] ee.bitrev q2, a6 @@ -27,33 +20,33 @@ ee.bitrev q2, a6 ee.cmul.s16 q3, q6, q2, 3 # CHECK: ee.cmul.s16 q3, q6, q2, 3 # encoding: [0x34,0x96,0x9e] ee.cmul.s16.ld.incp q2, a7, q5, q1, q4, 2 -# CHECK: ee.cmul.s16.ld.incp q2, a7, q5, q1, q4, 2 # encoding: [0xe7,0x60,0x2a,0x1c] +# CHECK: ee.cmul.s16.ld.incp q2, a7, q5, q1, q4, 2 # encoding: [0x7e,0x6e,0x05,0xe1] ee.cmul.s16.st.incp q7, a11, q1, q5, q2, 3 -# CHECK: ee.cmul.s16.st.incp q7, a11, q1, q5, q2, 3 # encoding: [0x3b,0x57,0x83,0x1c] +# CHECK: ee.cmul.s16.st.incp q7, a11, q1, q5, q2, 3 # encoding: [0xbf,0x53,0x71,0xe4] ee.fft.ams.s16.ld.incp q5, a5, q3, q1, q1, q2, q5, 1 -# CHECK: ee.fft.ams.s16.ld.incp q5, a5, q3, q1, q1, q2, q5, 1 # encoding: [0xd5,0x5a,0x4a,0x1a] +# CHECK: ee.fft.ams.s16.ld.incp q5, a5, q3, q1, q1, q2, q5, 1 # encoding: [0x5e,0x5d,0xa5,0xd2] ee.fft.ams.s16.ld.incp.uaup q7, a12, q4, q1, q5, q6, q3, 0 -# CHECK: ee.fft.ams.s16.ld.incp.uaup q7, a12, q4, q1, q5, q6, q3, 0 # encoding: [0xfc,0x66,0x87,0x1a] +# CHECK: ee.fft.ams.s16.ld.incp.uaup q7, a12, q4, q1, q5, q6, q3, 0 # encoding: [0xcf,0x6f,0x63,0xd4] ee.fft.ams.s16.ld.r32.decp q6, a5, q0, q2, q7, q2, q0, 0 -# CHECK: ee.fft.ams.s16.ld.r32.decp q6, a5, q0, q2, q7, q2, q0, 0 # encoding: [0x65,0xc2,0x11,0x1b] +# CHECK: ee.fft.ams.s16.ld.r32.decp q6, a5, q0, q2, q7, q2, q0, 0 # encoding: [0x5f,0xc6,0x28,0xd8] ee.fft.ams.s16.st.incp q3, q6, a7, a6, q5, q5, q1, 1 -# CHECK: ee.fft.ams.s16.st.incp q3, q6, a7, a6, q5, q5, q1, 1 # encoding: [0x67,0x4b,0xeb,0x14] +# CHECK: ee.fft.ams.s16.st.incp q3, q6, a7, a6, q5, q5, q1, 1 # encoding: [0x7f,0x46,0xb5,0xa7] ee.fft.cmul.s16.ld.xp q3, a12, a6, q7, q0, q7, 2 -# CHECK: ee.fft.cmul.s16.ld.xp q3, a12, a6, q7, q0, q7, 2 # encoding: [0x6c,0x1f,0xae,0x1b] +# CHECK: ee.fft.cmul.s16.ld.xp q3, a12, a6, q7, q0, q7, 2 # encoding: [0xce,0x16,0xf7,0xdd] ee.fft.cmul.s16.st.xp q4, q0, q0, a2, a8, 6, 1, 1 -# CHECK: ee.fft.cmul.s16.st.xp q4, q0, q0, a2, a8, 6, 1, 1 # encoding: [0x82,0x30,0x51,0x15] +# CHECK: ee.fft.cmul.s16.st.xp q4, q0, q0, a2, a8, 6, 1, 1 # encoding: [0x2f,0x38,0x08,0xaa] ee.fft.r2bf.s16 q7, q1, q3, q6, 1 # CHECK: ee.fft.r2bf.s16 q7, q1, q3, q6, 1 # encoding: [0x54,0x9d,0xfc] ee.fft.r2bf.s16.st.incp q7, q3, q7, a2, 2 -# CHECK: ee.fft.r2bf.s16.st.incp q7, q3, q7, a2, 2 # encoding: [0x42,0xd7,0x1e,0x1d] +# CHECK: ee.fft.r2bf.s16.st.incp q7, q3, q7, a2, 2 # encoding: [0x2e,0xd4,0x7f,0xe8] ee.fft.vst.r32.decp q3, a14, 0 # CHECK: ee.fft.vst.r32.decp q3, a14, 0 # encoding: [0xe4,0xb3,0xdd] ee.ldf.128.ip f3, f5, f8, f0, a13, 64 -# CHECK: ee.ldf.128.ip f3, f5, f8, f0, a13, 64 # encoding: [0x4d,0x80,0x35,0x10] +# CHECK: ee.ldf.128.ip f3, f5, f8, f0, a13, 64 # encoding: [0xdf,0x84,0x0a,0x81] ee.ldf.128.xp f5, f2, f4, f4, a7, a8 -# CHECK: ee.ldf.128.xp f5, f2, f4, f4, a7, a8 # encoding: [0x87,0x44,0x52,0x11] +# CHECK: ee.ldf.128.xp f5, f2, f4, f4, a7, a8 # encoding: [0x7e,0x48,0x49,0x8a] ee.ldf.64.ip f6, f5, a1, 488 -# CHECK: ee.ldf.64.ip f6, f5, a1, 488 # encoding: [0x51,0x65,0x1e,0x1c] +# CHECK: ee.ldf.64.ip f6, f5, a1, 488 # encoding: [0x1e,0x65,0x5f,0xe0] ee.ldf.64.xp f0, f6, a3, a8 # CHECK: ee.ldf.64.xp f0, f6, a3, a8 # encoding: [0x30,0x08,0x66] ee.ldqa.s16.128.ip a11, 1904 @@ -73,7 +66,7 @@ ee.ldqa.u8.128.ip a4, 784 ee.ldqa.u8.128.xp a4, a9 # CHECK: ee.ldqa.u8.128.xp a4, a9 # encoding: [0x44,0x49,0x70] ee.ldxq.32 q2, q6, a11, 2, 1 -# CHECK: ee.ldxq.32 q2, q6, a11, 2, 1 # encoding: [0xdb,0x8f,0x25,0x1c] +# CHECK: ee.ldxq.32 q2, q6, a11, 2, 1 # encoding: [0xbf,0x8d,0xf2,0xe1] ee.ld.128.usar.ip q4, a8, -592 # CHECK: ee.ld.128.usar.ip q4, a8, -592 # encoding: [0x84,0x5b,0xe1] ee.ld.128.usar.xp q1, a9, a7 @@ -123,23 +116,23 @@ ee.srcxxp.2q q6, q0, a2, a14 ee.src.q q6, q7, q5 # CHECK: ee.src.q q6, q7, q5 # encoding: [0x64,0xf3,0xec] ee.src.q.ld.ip q2, a2, 1792, q6, q7 -# CHECK: ee.src.q.ld.ip q2, a2, 1792, q6, q7 # encoding: [0x02,0xa7,0x35,0x1c] +# CHECK: ee.src.q.ld.ip q2, a2, 1792, q6, q7 # encoding: [0x2f,0xa0,0x7a,0xe1] ee.src.q.ld.xp q2, a4, a9, q1, q7 -# CHECK: ee.src.q.ld.xp q2, a4, a9, q1, q7 # encoding: [0x94,0x47,0x04,0x1d] +# CHECK: ee.src.q.ld.xp q2, a4, a9, q1, q7 # encoding: [0x4e,0x49,0x72,0xe8] ee.src.q.qup q4, q3, q7 # CHECK: ee.src.q.qup q4, q3, q7 # encoding: [0x44,0xb7,0xfc] ee.srs.accx a12, a1, 0 # CHECK: ee.srs.accx a12, a1, 0 # encoding: [0x14,0x1c,0x7e] ee.stf.128.ip f4, f3, f8, f2, a4, -128 -# CHECK: ee.stf.128.ip f4, f3, f8, f2, a4, -128 # encoding: [0x84,0x82,0x43,0x12] +# CHECK: ee.stf.128.ip f4, f3, f8, f2, a4, -128 # encoding: [0x4f,0x88,0x21,0x92] ee.stf.128.xp f2, f0, f5, f8, a11, a5 -# CHECK: ee.stf.128.xp f2, f0, f5, f8, a11, a5 # encoding: [0x5b,0x58,0x20,0x13] +# CHECK: ee.stf.128.xp f2, f0, f5, f8, a11, a5 # encoding: [0xbe,0x55,0x80,0x99] ee.stf.64.ip f3, f6, a10, -848 -# CHECK: ee.stf.64.ip f3, f6, a10, -848 # encoding: [0x6a,0x36,0x4b,0x1c] +# CHECK: ee.stf.64.ip f3, f6, a10, -848 # encoding: [0xaf,0x36,0x65,0xe2] ee.stf.64.xp f2, f1, a1, a14 # CHECK: ee.stf.64.xp f2, f1, a1, a14 # encoding: [0x10,0x2e,0x17] ee.stxq.32 q5, q2, a5, 0, 1 -# CHECK: ee.stxq.32 q5, q2, a5, 0, 1 # encoding: [0x05,0x8d,0xc0,0x1c] +# CHECK: ee.stxq.32 q5, q2, a5, 0, 1 # encoding: [0x5e,0x80,0xd0,0xe6] ee.st.accx.ip a10, 24 # CHECK: ee.st.accx.ip a10, 24 # encoding: [0xa4,0x03,0x02] ee.st.qacc_h.h.32.ip a14, 380 @@ -155,21 +148,21 @@ ee.st.ua_state.ip a4, -1728 ee.vadds.s16 q5, q1, q4 # CHECK: ee.vadds.s16 q5, q1, q4 # encoding: [0x64,0xc1,0xae] ee.vadds.s16.ld.incp q6, a6, q1, q3, q1 -# CHECK: ee.vadds.s16.ld.incp q6, a6, q1, q3, q1 # encoding: [0xd6,0xca,0x62,0x1c] +# CHECK: ee.vadds.s16.ld.incp q6, a6, q1, q3, q1 # encoding: [0x6e,0xcd,0xa1,0xe3] ee.vadds.s16.st.incp q4, a0, q1, q3, q1 -# CHECK: ee.vadds.s16.st.incp q4, a0, q1, q3, q1 # encoding: [0x00,0xcc,0x92,0x1c] +# CHECK: ee.vadds.s16.st.incp q4, a0, q1, q3, q1 # encoding: [0x0e,0xc0,0xc9,0xe4] ee.vadds.s32 q3, q5, q2 # CHECK: ee.vadds.s32 q3, q5, q2 # encoding: [0x74,0x95,0x9e] ee.vadds.s32.ld.incp q4, a4, q1, q6, q5 -# CHECK: ee.vadds.s32.ld.incp q4, a4, q1, q6, q5 # encoding: [0xd4,0xab,0x43,0x1c] +# CHECK: ee.vadds.s32.ld.incp q4, a4, q1, q6, q5 # encoding: [0x4f,0xad,0xb1,0xe2] ee.vadds.s32.st.incp q5, a1, q0, q6, q0 -# CHECK: ee.vadds.s32.st.incp q5, a1, q0, q6, q0 # encoding: [0x11,0x85,0x91,0x1c] +# CHECK: ee.vadds.s32.st.incp q5, a1, q0, q6, q0 # encoding: [0x1f,0x81,0x58,0xe4] ee.vadds.s8 q4, q4, q5 # CHECK: ee.vadds.s8 q4, q4, q5 # encoding: [0x84,0x4c,0xae] ee.vadds.s8.ld.incp q2, a14, q0, q3, q3 -# CHECK: ee.vadds.s8.ld.incp q2, a14, q0, q3, q3 # encoding: [0xce,0xd9,0x20,0x1c] +# CHECK: ee.vadds.s8.ld.incp q2, a14, q0, q3, q3 # encoding: [0xee,0xdc,0x90,0xe1] ee.vadds.s8.st.incp q0, a9, q4, q7, q0 -# CHECK: ee.vadds.s8.st.incp q0, a9, q4, q7, q0 # encoding: [0x29,0xc0,0x99,0x1c] +# CHECK: ee.vadds.s8.st.incp q0, a9, q4, q7, q0 # encoding: [0x9f,0xc2,0x0c,0xe4] ee.vcmp.eq.s16 q5, q3, q0 # CHECK: ee.vcmp.eq.s16 q5, q3, q0 # encoding: [0x94,0x83,0xae] ee.vcmp.eq.s32 q5, q5, q4 @@ -223,159 +216,159 @@ ee.vld.l.64.xp q1, a2, a9 ee.vmax.s16 q2, q5, q6 # CHECK: ee.vmax.s16 q2, q5, q6 # encoding: [0x24,0x75,0x9e] ee.vmax.s16.ld.incp q0, a0, q6, q1, q2 -# CHECK: ee.vmax.s16.ld.incp q0, a0, q6, q1, q2 # encoding: [0xd0,0x51,0x0c,0x1c] +# CHECK: ee.vmax.s16.ld.incp q0, a0, q6, q1, q2 # encoding: [0x0e,0x5d,0x16,0xe0] ee.vmax.s16.st.incp q5, a10, q6, q6, q7 -# CHECK: ee.vmax.s16.st.incp q5, a10, q6, q6, q7 # encoding: [0x3a,0xbd,0x9d,0x1c] +# CHECK: ee.vmax.s16.st.incp q5, a10, q6, q6, q7 # encoding: [0xaf,0xb3,0xde,0xe4] ee.vmax.s32 q3, q2, q7 # CHECK: ee.vmax.s32 q3, q2, q7 # encoding: [0x34,0xfa,0x9e] ee.vmax.s32.ld.incp q1, a3, q1, q1, q0 -# CHECK: ee.vmax.s32.ld.incp q1, a3, q1, q1, q0 # encoding: [0xe3,0x41,0x12,0x1c] +# CHECK: ee.vmax.s32.ld.incp q1, a3, q1, q1, q0 # encoding: [0x3e,0x4e,0x19,0xe0] ee.vmax.s32.st.incp q3, a12, q4, q6, q3 -# CHECK: ee.vmax.s32.st.incp q3, a12, q4, q6, q3 # encoding: [0x0c,0x9b,0xa9,0x1c] +# CHECK: ee.vmax.s32.st.incp q3, a12, q4, q6, q3 # encoding: [0xcf,0x90,0xb4,0xe5] ee.vmax.s8 q4, q1, q6 # CHECK: ee.vmax.s8 q4, q1, q6 # encoding: [0x44,0x71,0xae] ee.vmax.s8.ld.incp q3, a10, q5, q1, q5 -# CHECK: ee.vmax.s8.ld.incp q3, a10, q5, q1, q5 # encoding: [0xfa,0x69,0x3a,0x1c] +# CHECK: ee.vmax.s8.ld.incp q3, a10, q5, q1, q5 # encoding: [0xae,0x6f,0x9d,0xe1] ee.vmax.s8.st.incp q3, a9, q3, q6, q7 -# CHECK: ee.vmax.s8.st.incp q3, a9, q3, q6, q7 # encoding: [0x09,0xbb,0xb7,0x1c] +# CHECK: ee.vmax.s8.st.incp q3, a9, q3, q6, q7 # encoding: [0x9f,0xb0,0xbb,0xe5] ee.vmin.s16 q6, q2, q5 # CHECK: ee.vmin.s16 q6, q2, q5 # encoding: [0x54,0x6a,0xbe] ee.vmin.s16.ld.incp q5, a3, q2, q4, q0 -# CHECK: ee.vmin.s16.ld.incp q5, a3, q2, q4, q0 # encoding: [0xe3,0x02,0x55,0x1c] +# CHECK: ee.vmin.s16.ld.incp q5, a3, q2, q4, q0 # encoding: [0x3f,0x0e,0x2a,0xe2] ee.vmin.s16.st.incp q4, a9, q4, q6, q0 -# CHECK: ee.vmin.s16.st.incp q4, a9, q4, q6, q0 # encoding: [0x19,0x84,0xa9,0x1c] +# CHECK: ee.vmin.s16.st.incp q4, a9, q4, q6, q0 # encoding: [0x9f,0x81,0x44,0xe5] ee.vmin.s32 q1, q1, q6 # CHECK: ee.vmin.s32 q1, q1, q6 # encoding: [0x64,0xf1,0x8e] ee.vmin.s32.ld.incp q0, a1, q3, q2, q0 -# CHECK: ee.vmin.s32.ld.incp q0, a1, q3, q2, q0 # encoding: [0xe1,0x83,0x06,0x1c] +# CHECK: ee.vmin.s32.ld.incp q0, a1, q3, q2, q0 # encoding: [0x1e,0x8e,0x33,0xe0] ee.vmin.s32.st.incp q0, a12, q4, q4, q3 -# CHECK: ee.vmin.s32.st.incp q0, a12, q4, q4, q3 # encoding: [0x1c,0x18,0xb9,0x1c] +# CHECK: ee.vmin.s32.st.incp q0, a12, q4, q4, q3 # encoding: [0xcf,0x11,0x8c,0xe5] ee.vmin.s8 q7, q6, q0 # CHECK: ee.vmin.s8 q7, q6, q0 # encoding: [0x74,0xa6,0xbe] ee.vmin.s8.ld.incp q2, a13, q7, q7, q3 -# CHECK: ee.vmin.s8.ld.incp q2, a13, q7, q7, q3 # encoding: [0xfd,0xda,0x2f,0x1c] +# CHECK: ee.vmin.s8.ld.incp q2, a13, q7, q7, q3 # encoding: [0xdf,0xdf,0xa7,0xe1] ee.vmin.s8.st.incp q2, a4, q4, q7, q1 -# CHECK: ee.vmin.s8.st.incp q2, a4, q4, q7, q1 # encoding: [0x24,0xca,0xa9,0x1c] +# CHECK: ee.vmin.s8.st.incp q2, a4, q4, q7, q1 # encoding: [0x4f,0xc2,0xa4,0xe5] ee.vmulas.s16.accx q0, q7 # CHECK: ee.vmulas.s16.accx q0, q7 # encoding: [0x84,0x58,0x1a] ee.vmulas.s16.accx.ld.ip q7, a7, -16, q2, q0 -# CHECK: ee.vmulas.s16.accx.ld.ip q7, a7, -16, q2, q0 # encoding: [0xf7,0x80,0xf0,0x1f] +# CHECK: ee.vmulas.s16.accx.ld.ip q7, a7, -16, q2, q0 # encoding: [0x7e,0x8f,0x08,0xff] ee.vmulas.s16.accx.ld.ip.qup q5, a14, 32, q0, q2, q0, q2 -# CHECK: ee.vmulas.s16.accx.ld.ip.qup q5, a14, 32, q0, q2, q0, q2 # encoding: [0x2e,0x10,0x54,0x00] +# CHECK: ee.vmulas.s16.accx.ld.ip.qup q5, a14, 32, q0, q2, q0, q2 # encoding: [0xee,0x12,0x0a,0x02] ee.vmulas.s16.accx.ld.xp q1, a0, a1, q2, q6 -# CHECK: ee.vmulas.s16.accx.ld.xp q1, a0, a1, q2, q6 # encoding: [0x10,0xb1,0x10,0x1e] +# CHECK: ee.vmulas.s16.accx.ld.xp q1, a0, a1, q2, q6 # encoding: [0x0e,0xb1,0x18,0xf0] ee.vmulas.s16.accx.ld.xp.qup q4, a8, a10, q4, q0, q0, q3 -# CHECK: ee.vmulas.s16.accx.ld.xp.qup q4, a8, a10, q4, q0, q0, q3 # encoding: [0xa8,0x00,0x47,0x16] +# CHECK: ee.vmulas.s16.accx.ld.xp.qup q4, a8, a10, q4, q0, q0, q3 # encoding: [0x8f,0x0a,0x03,0xb2] ee.vmulas.s16.qacc q0, q6 # CHECK: ee.vmulas.s16.qacc q0, q6 # encoding: [0x84,0x70,0x1a] ee.vmulas.s16.qacc.ldbc.incp q2, a6, q3, q4 # CHECK: ee.vmulas.s16.qacc.ldbc.incp q2, a6, q3, q4 # encoding: [0x64,0xc3,0x87] ee.vmulas.s16.qacc.ldbc.incp.qup q0, a4, q1, q6, q4, q5 -# CHECK: ee.vmulas.s16.qacc.ldbc.incp.qup q0, a4, q1, q6, q4, q5 # encoding: [0x84,0x74,0x0a,0x1c] +# CHECK: ee.vmulas.s16.qacc.ldbc.incp.qup q0, a4, q1, q6, q4, q5 # encoding: [0x4e,0x78,0x45,0xe0] ee.vmulas.s16.qacc.ld.ip q7, a7, -64, q7, q7 -# CHECK: ee.vmulas.s16.qacc.ld.ip q7, a7, -64, q7, q7 # encoding: [0xc7,0xf8,0xf3,0x1f] +# CHECK: ee.vmulas.s16.qacc.ld.ip q7, a7, -64, q7, q7 # encoding: [0x7f,0xfc,0x89,0xff] ee.vmulas.s16.qacc.ld.ip.qup q0, a10, 48, q3, q6, q3, q6 -# CHECK: ee.vmulas.s16.qacc.ld.ip.qup q0, a10, 48, q3, q6, q3, q6 # encoding: [0x3a,0xf3,0x0c,0x02] +# CHECK: ee.vmulas.s16.qacc.ld.ip.qup q0, a10, 48, q3, q6, q3, q6 # encoding: [0xae,0xf3,0x36,0x10] ee.vmulas.s16.qacc.ld.xp q3, a11, a4, q4, q5 -# CHECK: ee.vmulas.s16.qacc.ld.xp q3, a11, a4, q4, q5 # encoding: [0x4b,0x29,0x33,0x1e] +# CHECK: ee.vmulas.s16.qacc.ld.xp q3, a11, a4, q4, q5 # encoding: [0xbf,0x24,0x99,0xf1] ee.vmulas.s16.qacc.ld.xp.qup q2, a9, a1, q3, q2, q1, q7 -# CHECK: ee.vmulas.s16.qacc.ld.xp.qup q2, a9, a1, q3, q2, q1, q7 # encoding: [0x19,0xd1,0xae,0x16] +# CHECK: ee.vmulas.s16.qacc.ld.xp.qup q2, a9, a1, q3, q2, q1, q7 # encoding: [0x9e,0xd1,0x17,0xb5] ee.vmulas.s8.accx q1, q0 # CHECK: ee.vmulas.s8.accx q1, q0 # encoding: [0xc4,0x01,0x1a] ee.vmulas.s8.accx.ld.ip q2, a8, 80, q3, q0 -# CHECK: ee.vmulas.s8.accx.ld.ip q2, a8, 80, q3, q0 # encoding: [0x58,0xc0,0x24,0x1e] +# CHECK: ee.vmulas.s8.accx.ld.ip q2, a8, 80, q3, q0 # encoding: [0x8e,0xc5,0x02,0xf1] ee.vmulas.s8.accx.ld.ip.qup q2, a9, -80, q1, q2, q6, q3 -# CHECK: ee.vmulas.s8.accx.ld.ip.qup q2, a9, -80, q1, q2, q6, q3 # encoding: [0xb9,0x56,0xa6,0x05] +# CHECK: ee.vmulas.s8.accx.ld.ip.qup q2, a9, -80, q1, q2, q6, q3 # encoding: [0x9e,0x5b,0x63,0x2d] ee.vmulas.s8.accx.ld.xp q3, a3, a4, q4, q7 -# CHECK: ee.vmulas.s8.accx.ld.xp q3, a3, a4, q4, q7 # encoding: [0x43,0x39,0x35,0x1e] +# CHECK: ee.vmulas.s8.accx.ld.xp q3, a3, a4, q4, q7 # encoding: [0x3f,0x34,0x9a,0xf1] ee.vmulas.s8.accx.ld.xp.qup q0, a3, a1, q4, q5, q3, q3 -# CHECK: ee.vmulas.s8.accx.ld.xp.qup q0, a3, a1, q4, q5, q3, q3 # encoding: [0x13,0x2b,0x07,0x17] +# CHECK: ee.vmulas.s8.accx.ld.xp.qup q0, a3, a1, q4, q5, q3, q3 # encoding: [0x3f,0x21,0xb3,0xb8] ee.vmulas.s8.qacc q5, q7 # CHECK: ee.vmulas.s8.qacc q5, q7 # encoding: [0xc4,0x7d,0x1a] ee.vmulas.s8.qacc.ldbc.incp q7, a1, q6, q1 # CHECK: ee.vmulas.s8.qacc.ldbc.incp q7, a1, q6, q1 # encoding: [0x14,0xae,0xb7] ee.vmulas.s8.qacc.ldbc.incp.qup q3, a11, q4, q6, q5, q6 -# CHECK: ee.vmulas.s8.qacc.ldbc.incp.qup q3, a11, q4, q6, q5, q6 # encoding: [0x9b,0x35,0x3d,0x1c] +# CHECK: ee.vmulas.s8.qacc.ldbc.incp.qup q3, a11, q4, q6, q5, q6 # encoding: [0xbf,0x39,0x5e,0xe1] ee.vmulas.s8.qacc.ld.ip q5, a10, -16, q0, q0 -# CHECK: ee.vmulas.s8.qacc.ld.ip q5, a10, -16, q0, q0 # encoding: [0xfa,0x00,0xd6,0x1f] +# CHECK: ee.vmulas.s8.qacc.ld.ip q5, a10, -16, q0, q0 # encoding: [0xae,0x0f,0x0b,0xfe] ee.vmulas.s8.qacc.ld.ip.qup q7, a9, -48, q6, q2, q1, q2 -# CHECK: ee.vmulas.s8.qacc.ld.ip.qup q7, a9, -48, q6, q2, q1, q2 # encoding: [0xd9,0x91,0xf5,0x07] +# CHECK: ee.vmulas.s8.qacc.ld.ip.qup q7, a9, -48, q6, q2, q1, q2 # encoding: [0x9f,0x9d,0x1a,0x3f] ee.vmulas.s8.qacc.ld.xp q1, a1, a12, q5, q0 -# CHECK: ee.vmulas.s8.qacc.ld.xp q1, a1, a12, q5, q0 # encoding: [0xc1,0x41,0x17,0x1e] +# CHECK: ee.vmulas.s8.qacc.ld.xp q1, a1, a12, q5, q0 # encoding: [0x1f,0x4c,0x1b,0xf0] ee.vmulas.s8.qacc.ld.xp.qup q0, a1, a14, q1, q6, q2, q4 -# CHECK: ee.vmulas.s8.qacc.ld.xp.qup q0, a1, a14, q1, q6, q2, q4 # encoding: [0xe1,0x72,0x88,0x17] +# CHECK: ee.vmulas.s8.qacc.ld.xp.qup q0, a1, a14, q1, q6, q2, q4 # encoding: [0x1e,0x7e,0x24,0xbc] ee.vmulas.u16.accx q7, q1 # CHECK: ee.vmulas.u16.accx q7, q1 # encoding: [0x84,0x0f,0x0a] ee.vmulas.u16.accx.ld.ip q5, a8, -32, q1, q4 -# CHECK: ee.vmulas.u16.accx.ld.ip q5, a8, -32, q1, q4 # encoding: [0xe8,0x60,0xd8,0x1f] +# CHECK: ee.vmulas.u16.accx.ld.ip q5, a8, -32, q1, q4 # encoding: [0x8e,0x6e,0x0c,0xfe] ee.vmulas.u16.accx.ld.ip.qup q1, a0, 48, q7, q4, q4, q0 -# CHECK: ee.vmulas.u16.accx.ld.ip.qup q1, a0, 48, q7, q4, q4, q0 # encoding: [0x30,0xe4,0x11,0x08] +# CHECK: ee.vmulas.u16.accx.ld.ip.qup q1, a0, 48, q7, q4, q4, q0 # encoding: [0x0f,0xe3,0x48,0x40] ee.vmulas.u16.accx.ld.xp q3, a14, a4, q5, q4 -# CHECK: ee.vmulas.u16.accx.ld.xp q3, a14, a4, q5, q4 # encoding: [0x4e,0x61,0x39,0x1e] +# CHECK: ee.vmulas.u16.accx.ld.xp q3, a14, a4, q5, q4 # encoding: [0xef,0x64,0x1c,0xf1] ee.vmulas.u16.accx.ld.xp.qup q4, a3, a7, q6, q2, q4, q4 -# CHECK: ee.vmulas.u16.accx.ld.xp.qup q4, a3, a7, q6, q2, q4, q4 # encoding: [0x73,0x94,0x49,0x18] +# CHECK: ee.vmulas.u16.accx.ld.xp.qup q4, a3, a7, q6, q2, q4, q4 # encoding: [0x3f,0x97,0x44,0xc2] ee.vmulas.u16.qacc q5, q5 # CHECK: ee.vmulas.u16.qacc q5, q5 # encoding: [0x84,0x6d,0x0a] ee.vmulas.u16.qacc.ldbc.incp q6, a7, q0, q3 # CHECK: ee.vmulas.u16.qacc.ldbc.incp q6, a7, q0, q3 # encoding: [0x74,0x98,0xd7] ee.vmulas.u16.qacc.ldbc.incp.qup q0, a12, q6, q3, q2, q0 -# CHECK: ee.vmulas.u16.qacc.ldbc.incp.qup q0, a12, q6, q3, q2, q0 # encoding: [0xac,0x9a,0x01,0x1c] +# CHECK: ee.vmulas.u16.qacc.ldbc.incp.qup q0, a12, q6, q3, q2, q0 # encoding: [0xcf,0x9a,0xa0,0xe0] ee.vmulas.u16.qacc.ld.ip q4, a10, 16, q3, q2 -# CHECK: ee.vmulas.u16.qacc.ld.ip q4, a10, 16, q3, q2 # encoding: [0x1a,0xd0,0x4a,0x1e] +# CHECK: ee.vmulas.u16.qacc.ld.ip q4, a10, 16, q3, q2 # encoding: [0xae,0xd1,0x05,0xf2] ee.vmulas.u16.qacc.ld.ip.qup q2, a4, 0, q5, q4, q2, q6 -# CHECK: ee.vmulas.u16.qacc.ld.ip.qup q2, a4, 0, q5, q4, q2, q6 # encoding: [0x04,0x62,0x2d,0x0a] +# CHECK: ee.vmulas.u16.qacc.ld.ip.qup q2, a4, 0, q5, q4, q2, q6 # encoding: [0x4f,0x60,0x26,0x51] ee.vmulas.u16.qacc.ld.xp q6, a14, a2, q4, q0 -# CHECK: ee.vmulas.u16.qacc.ld.xp q6, a14, a2, q4, q0 # encoding: [0x2e,0x01,0x6b,0x1e] +# CHECK: ee.vmulas.u16.qacc.ld.xp q6, a14, a2, q4, q0 # encoding: [0xef,0x02,0x15,0xf3] ee.vmulas.u16.qacc.ld.xp.qup q6, a12, a11, q6, q7, q4, q1 -# CHECK: ee.vmulas.u16.qacc.ld.xp.qup q6, a12, a11, q6, q7, q4, q1 # encoding: [0xbc,0xbc,0xe3,0x18] +# CHECK: ee.vmulas.u16.qacc.ld.xp.qup q6, a12, a11, q6, q7, q4, q1 # encoding: [0xcf,0xbb,0xc1,0xc7] ee.vmulas.u8.accx q2, q1 # CHECK: ee.vmulas.u8.accx q2, q1 # encoding: [0xc4,0x0a,0x0a] ee.vmulas.u8.accx.ld.ip q6, a3, -112, q2, q7 -# CHECK: ee.vmulas.u8.accx.ld.ip q6, a3, -112, q2, q7 # encoding: [0x93,0xb8,0xec,0x1f] +# CHECK: ee.vmulas.u8.accx.ld.ip q6, a3, -112, q2, q7 # encoding: [0x3e,0xb9,0x86,0xff] ee.vmulas.u8.accx.ld.ip.qup q7, a3, -32, q3, q3, q7, q5 -# CHECK: ee.vmulas.u8.accx.ld.ip.qup q7, a3, -32, q3, q3, q7, q5 # encoding: [0xe3,0xdf,0xfa,0x0d] +# CHECK: ee.vmulas.u8.accx.ld.ip.qup q7, a3, -32, q3, q3, q7, q5 # encoding: [0x3e,0xde,0xfd,0x6f] ee.vmulas.u8.accx.ld.xp q4, a4, a9, q4, q0 -# CHECK: ee.vmulas.u8.accx.ld.xp q4, a4, a9, q4, q0 # encoding: [0x94,0x01,0x4d,0x1e] +# CHECK: ee.vmulas.u8.accx.ld.xp q4, a4, a9, q4, q0 # encoding: [0x4f,0x09,0x16,0xf2] ee.vmulas.u8.accx.ld.xp.qup q5, a7, a13, q4, q7, q2, q6 -# CHECK: ee.vmulas.u8.accx.ld.xp.qup q5, a7, a13, q4, q7, q2, q6 # encoding: [0xd7,0x3a,0x5d,0x19] +# CHECK: ee.vmulas.u8.accx.ld.xp.qup q5, a7, a13, q4, q7, q2, q6 # encoding: [0x7f,0x3d,0xae,0xca] ee.vmulas.u8.qacc q3, q6 # CHECK: ee.vmulas.u8.qacc q3, q6 # encoding: [0xc4,0x73,0x0a] ee.vmulas.u8.qacc.ldbc.incp q4, a1, q0, q5 # CHECK: ee.vmulas.u8.qacc.ldbc.incp q4, a1, q0, q5 # encoding: [0x14,0x48,0xf7] ee.vmulas.u8.qacc.ldbc.incp.qup q2, a1, q5, q7, q6, q4 -# CHECK: ee.vmulas.u8.qacc.ldbc.incp.qup q2, a1, q5, q7, q6, q4 # encoding: [0xb1,0x7e,0x29,0x1c] +# CHECK: ee.vmulas.u8.qacc.ldbc.incp.qup q2, a1, q5, q7, q6, q4 # encoding: [0x1f,0x7b,0xe4,0xe1] ee.vmulas.u8.qacc.ld.ip q2, a12, 32, q1, q4 -# CHECK: ee.vmulas.u8.qacc.ld.ip q2, a12, 32, q1, q4 # encoding: [0x2c,0x60,0x2e,0x1e] +# CHECK: ee.vmulas.u8.qacc.ld.ip q2, a12, 32, q1, q4 # encoding: [0xce,0x62,0x07,0xf1] ee.vmulas.u8.qacc.ld.ip.qup q0, a6, 48, q0, q0, q6, q0 -# CHECK: ee.vmulas.u8.qacc.ld.ip.qup q0, a6, 48, q0, q0, q6, q0 # encoding: [0x36,0x06,0x00,0x0e] +# CHECK: ee.vmulas.u8.qacc.ld.ip.qup q0, a6, 48, q0, q0, q6, q0 # encoding: [0x6e,0x03,0x60,0x70] ee.vmulas.u8.qacc.ld.xp q6, a1, a1, q2, q5 -# CHECK: ee.vmulas.u8.qacc.ld.xp q6, a1, a1, q2, q5 # encoding: [0x11,0xa9,0x6e,0x1e] +# CHECK: ee.vmulas.u8.qacc.ld.xp q6, a1, a1, q2, q5 # encoding: [0x1e,0xa1,0x97,0xf3] ee.vmulas.u8.qacc.ld.xp.qup q1, a8, a10, q3, q7, q1, q3 -# CHECK: ee.vmulas.u8.qacc.ld.xp.qup q1, a8, a10, q3, q7, q1, q3 # encoding: [0xa8,0xf9,0x96,0x19] +# CHECK: ee.vmulas.u8.qacc.ld.xp.qup q1, a8, a10, q3, q7, q1, q3 # encoding: [0x8e,0xfa,0x9b,0xcc] ee.vmul.s16 q0, q4, q1 # CHECK: ee.vmul.s16 q0, q4, q1 # encoding: [0x84,0x2c,0x8e] ee.vmul.s16.ld.incp q4, a5, q1, q5, q5 -# CHECK: ee.vmul.s16.ld.incp q4, a5, q1, q5, q5 # encoding: [0xf5,0x6b,0x43,0x1c] +# CHECK: ee.vmul.s16.ld.incp q4, a5, q1, q5, q5 # encoding: [0x5f,0x6f,0xb1,0xe2] ee.vmul.s16.st.incp q4, a4, q2, q5, q0 -# CHECK: ee.vmul.s16.st.incp q4, a4, q2, q5, q0 # encoding: [0x24,0x44,0xb5,0x1c] +# CHECK: ee.vmul.s16.st.incp q4, a4, q2, q5, q0 # encoding: [0x4f,0x42,0x4a,0xe5] ee.vmul.s8 q5, q3, q2 # CHECK: ee.vmul.s8 q5, q3, q2 # encoding: [0x94,0xb3,0xae] ee.vmul.s8.ld.incp q6, a11, q3, q6, q4 -# CHECK: ee.vmul.s8.ld.incp q6, a11, q3, q6, q4 # encoding: [0xcb,0xa4,0x67,0x1c] +# CHECK: ee.vmul.s8.ld.incp q6, a11, q3, q6, q4 # encoding: [0xbf,0xac,0x43,0xe3] ee.vmul.s8.st.incp q5, a5, q5, q2, q4 -# CHECK: ee.vmul.s8.st.incp q5, a5, q5, q2, q4 # encoding: [0x35,0xa5,0xaa,0x1c] +# CHECK: ee.vmul.s8.st.incp q5, a5, q5, q2, q4 # encoding: [0x5e,0xa3,0x55,0xe5] ee.vmul.u16 q0, q0, q5 # CHECK: ee.vmul.u16 q0, q0, q5 # encoding: [0xa4,0x68,0x8e] ee.vmul.u16.ld.incp q4, a2, q0, q1, q1 -# CHECK: ee.vmul.u16.ld.incp q4, a2, q0, q1, q1 # encoding: [0xc2,0x4d,0x40,0x1c] +# CHECK: ee.vmul.u16.ld.incp q4, a2, q0, q1, q1 # encoding: [0x2e,0x4c,0xd0,0xe2] ee.vmul.u16.st.incp q6, a5, q1, q2, q7 -# CHECK: ee.vmul.u16.st.incp q6, a5, q1, q2, q7 # encoding: [0x35,0xbe,0xb2,0x1c] +# CHECK: ee.vmul.u16.st.incp q6, a5, q1, q2, q7 # encoding: [0x5e,0xb3,0xe9,0xe5] ee.vmul.u8 q6, q4, q5 # CHECK: ee.vmul.u8 q6, q4, q5 # encoding: [0xb4,0x6c,0xbe] ee.vmul.u8.ld.incp q1, a5, q4, q1, q1 -# CHECK: ee.vmul.u8.ld.incp q1, a5, q4, q1, q1 # encoding: [0xc5,0x4e,0x18,0x1c] +# CHECK: ee.vmul.u8.ld.incp q1, a5, q4, q1, q1 # encoding: [0x5e,0x4c,0xec,0xe0] ee.vmul.u8.st.incp q4, a12, q5, q0, q4 -# CHECK: ee.vmul.u8.st.incp q4, a12, q5, q0, q4 # encoding: [0x0c,0x24,0x1a,0x1d] +# CHECK: ee.vmul.u8.st.incp q4, a12, q5, q0, q4 # encoding: [0xce,0x20,0x4d,0xe8] ee.vprelu.s16 q2, q7, q0, a1 # CHECK: ee.vprelu.s16 q2, q7, q0, a1 # encoding: [0x14,0x07,0x9c] ee.vprelu.s8 q5, q6, q5, a13 @@ -389,11 +382,11 @@ ee.vsl.32 q0, q1 ee.vsmulas.s16.qacc q2, q7, 2 # CHECK: ee.vsmulas.s16.qacc q2, q7, 2 # encoding: [0xc4,0x7a,0x9e] ee.vsmulas.s16.qacc.ld.incp q7, a3, q3, q4, 3 -# CHECK: ee.vsmulas.s16.qacc.ld.incp q7, a3, q3, q4, 3 # encoding: [0xc3,0xe7,0x76,0x1c] +# CHECK: ee.vsmulas.s16.qacc.ld.incp q7, a3, q3, q4, 3 # encoding: [0x3e,0xec,0x7b,0xe3] ee.vsmulas.s8.qacc q3, q6, 3 # CHECK: ee.vsmulas.s8.qacc q3, q6, 3 # encoding: [0x54,0xd3,0x8e] ee.vsmulas.s8.qacc.ld.incp q1, a8, q1, q1, 4 -# CHECK: ee.vsmulas.s8.qacc.ld.incp q1, a8, q1, q1, 4 # encoding: [0xc8,0x4a,0x14,0x1c] +# CHECK: ee.vsmulas.s8.qacc.ld.incp q1, a8, q1, q1, 4 # encoding: [0x8e,0x4c,0xaa,0xe0] ee.vsr.32 q4, q3 # CHECK: ee.vsr.32 q4, q3 # encoding: [0xc4,0xbf,0xdd] ee.vst.128.ip q3, a6, -816 @@ -411,21 +404,21 @@ ee.vst.l.64.xp q0, a13, a6 ee.vsubs.s16 q5, q1, q4 # CHECK: ee.vsubs.s16 q5, q1, q4 # encoding: [0xd4,0xe1,0xae] ee.vsubs.s16.ld.incp q1, a4, q6, q0, q1 -# CHECK: ee.vsubs.s16.ld.incp q1, a4, q6, q0, q1 # encoding: [0xd4,0x0c,0x1c,0x1c] +# CHECK: ee.vsubs.s16.ld.incp q1, a4, q6, q0, q1 # encoding: [0x4e,0x0d,0xce,0xe0] ee.vsubs.s16.st.incp q7, a13, q7, q5, q2 -# CHECK: ee.vsubs.s16.st.incp q7, a13, q7, q5, q2 # encoding: [0x1d,0x57,0x1f,0x1d] +# CHECK: ee.vsubs.s16.st.incp q7, a13, q7, q5, q2 # encoding: [0xdf,0x51,0x7f,0xe8] ee.vsubs.s32 q2, q7, q6 # CHECK: ee.vsubs.s32 q2, q7, q6 # encoding: [0xe4,0x77,0x9e] ee.vsubs.s32.ld.incp q1, a8, q1, q4, q0 -# CHECK: ee.vsubs.s32.ld.incp q1, a8, q1, q4, q0 # encoding: [0xd8,0x05,0x13,0x1c] +# CHECK: ee.vsubs.s32.ld.incp q1, a8, q1, q4, q0 # encoding: [0x8f,0x0d,0x59,0xe0] ee.vsubs.s32.st.incp q1, a5, q7, q4, q0 -# CHECK: ee.vsubs.s32.st.incp q1, a5, q7, q4, q0 # encoding: [0x25,0x01,0x1f,0x1d] +# CHECK: ee.vsubs.s32.st.incp q1, a5, q7, q4, q0 # encoding: [0x5f,0x02,0x1f,0xe8] ee.vsubs.s8 q7, q1, q5 # CHECK: ee.vsubs.s8 q7, q1, q5 # encoding: [0xf4,0xe9,0xbe] ee.vsubs.s8.ld.incp q4, a2, q6, q1, q6 -# CHECK: ee.vsubs.s8.ld.incp q4, a2, q6, q1, q6 # encoding: [0xd2,0x76,0x4c,0x1c] +# CHECK: ee.vsubs.s8.ld.incp q4, a2, q6, q1, q6 # encoding: [0x2e,0x7d,0x66,0xe2] ee.vsubs.s8.st.incp q6, a1, q6, q2, q3 -# CHECK: ee.vsubs.s8.st.incp q6, a1, q6, q2, q3 # encoding: [0x31,0x9e,0x1c,0x1d] +# CHECK: ee.vsubs.s8.st.incp q6, a1, q6, q2, q3 # encoding: [0x1e,0x93,0xee,0xe8] ee.vunzip.16 q6, q5 # CHECK: ee.vunzip.16 q6, q5 # encoding: [0x84,0xe3,0xec] ee.vunzip.32 q0, q6 @@ -446,7 +439,6 @@ ee.zero.q q0 # CHECK: ee.zero.q q0 # encoding: [0xa4,0x7f,0xcd] ee.zero.qacc # CHECK: ee.zero.qacc # encoding: [0x44,0x08,0x25] - rur.accx_0 a11 # CHECK: rur a11, accx # encoding: [0xd0,0xbe,0xe3] rur.accx_1 a11